业务中需要拿到 redis 中的大量数据进行运算,如果取出来进行运算就会进行一次内存拷贝,这样效率就不如直接把数据放到内存中,但是想利用 redis 的持久化和可以和程序分离。有没有好的方案处理这种情况
1
liuhan907 2022-07-05 12:26:04 +08:00 1
写个 redis module 。
|
2
LeegoYih 2022-07-05 12:26:50 +08:00 1
OP 的意思是直接在 Redis 中进行数据运算吗?可以用 Lua 脚本实现,但是 Redis 执行命令是单线程的,可能会影响其他客户端访问的性能,不太推荐。
|
3
des 2022-07-05 12:35:30 +08:00 via iPhone 1
“需要拿到 redis 中的大量数据进行运算”
提醒一下,redis 是单线程执行的,会影响其他客户端性能,虽然用 lua 就能做 |
4
hearfish 2022-07-05 12:43:11 +08:00 1
Redis module, 效率比 lua 高多了
|
5
tutu2000 2022-07-05 14:43:34 +08:00
1.Redis7 的 function 功能,可以使用 lua 开发,但比 scripts 的维护更方便
2.更复杂的计算就推荐使用 module 了,可以在 module 中起单独的线程进行运算 3.Redis 的 script 一般用来简单的运算 老实说我没理解你的问题,为何内存拷贝会成为性能瓶颈点,使用 Redis 一般都是网络 IO 占大头 |
6
wellsc 2022-07-05 15:13:34 +08:00
内存嗖嗖的,线上有遇到瓶颈吗?
|