V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
faust24601
V2EX  ›  程序员

能否拿到 redis 的数据指针

  •  
  •   faust24601 · 2022-07-05 12:12:31 +08:00 · 1812 次点击
    这是一个创建于 873 天前的主题,其中的信息可能已经有所发展或是发生改变。

    业务中需要拿到 redis 中的大量数据进行运算,如果取出来进行运算就会进行一次内存拷贝,这样效率就不如直接把数据放到内存中,但是想利用 redis 的持久化和可以和程序分离。有没有好的方案处理这种情况

    6 条回复    2022-07-05 15:13:34 +08:00
    liuhan907
        1
    liuhan907  
       2022-07-05 12:26:04 +08:00   ❤️ 1
    写个 redis module 。
    LeegoYih
        2
    LeegoYih  
       2022-07-05 12:26:50 +08:00   ❤️ 1
    OP 的意思是直接在 Redis 中进行数据运算吗?可以用 Lua 脚本实现,但是 Redis 执行命令是单线程的,可能会影响其他客户端访问的性能,不太推荐。
    des
        3
    des  
       2022-07-05 12:35:30 +08:00 via iPhone   ❤️ 1
    “需要拿到 redis 中的大量数据进行运算”
    提醒一下,redis 是单线程执行的,会影响其他客户端性能,虽然用 lua 就能做
    hearfish
        4
    hearfish  
       2022-07-05 12:43:11 +08:00   ❤️ 1
    Redis module, 效率比 lua 高多了
    tutu2000
        5
    tutu2000  
       2022-07-05 14:43:34 +08:00
    1.Redis7 的 function 功能,可以使用 lua 开发,但比 scripts 的维护更方便
    2.更复杂的计算就推荐使用 module 了,可以在 module 中起单独的线程进行运算
    3.Redis 的 script 一般用来简单的运算

    老实说我没理解你的问题,为何内存拷贝会成为性能瓶颈点,使用 Redis 一般都是网络 IO 占大头
    wellsc
        6
    wellsc  
       2022-07-05 15:13:34 +08:00
    内存嗖嗖的,线上有遇到瓶颈吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1380 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:16 · PVG 01:16 · LAX 09:16 · JFK 12:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.