#14 Redis 分布式锁
Redis 架构 分布式锁 2022-01-18SET lockKey endpointFlag EX 10 NX
#13 RedisJSON 体验
Redis 2022-01-09#12 Redis 拓展模块
Redis 服务器 2022-01-09#11 转载:Redis LRU 策略
Redis 2021-10-26#10 Redis 版本历史
Redis 2021-10-20#9 Redis 常用命令
Redis 2021-07-29之前发过一篇《Redis 命令大全》,列出了所有命令,结果我自己都懒得看。
我这里整理一下我日常常用的操作。
#8 redis 批处理
服务器 Redis 2021-07-15先将命令写在 commands.txt 中,一行一个,不用分号结尾,然后:
echo commands.txt | redis-cli -h 127.0.0.1 -p 6379
#7 Golang Redis
Golang Redis 2021-06-05#6 使用 Redis 做消息队列
Redis MQ 2021-03-06#5 Redis 真是单线程的?
Redis 多线程 2021-01-20Redis 核心模块是单线程架构,其高效利用 epoll I/O 多路复用机制实现了单线程高并发。
但是 Redis 服务有很多模块,整体上来说是多线程的。
#4 Redis 客户端缓存
Redis 2021-01-17对于一些热点数据,我们从 Redis 获取之后,常常会在本地线程中也存一份(或者根据语言不同,有些别的第三方组件来专门做这个),也可以有效减小网络消耗。
不过这也算是增加了一级缓存,不可避免的需要涉及数据的同步问题。如果需要比较强的实时性保障,我们就只能放弃采用这个缓存。
可现如今,Redis 能在数据过期
或数据更新
(包括重新设置导致 TTL 变化)之后通知客户端了,这也太贴心了吧。
#3 Redis 命令大全
服务器 Redis 2020-08-26#2 Python Redis Debug
Python Redis 2018-05-06如果可以的话,使用 redis-cli monitor
命令来输出所有 Redis 命令也很方便。
有时,条件不允许,或者 Redis 需要处理其他的连接,我希望将自己代码调用的 Redis 命令输出到日志中,方便调试。
#1 Redis 获取所有 key
Redis 2018-01-10测试环境
keys *
删除指定模式的 key:
redis-cli keys 'a.b.*' > /tmp/deleted_keys
cat /tmp/deleted_keys
cat /tmp/deleted_keys | xargs redis-cli del
线上环境
线上 keys 可能会导致严重的性能问题。
2.8 开始,Redis 增加了 4 个 SCAN 命令:
SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]
遍历当前 db 中的所有键, 返回 keys ...SSCAN key cursor [MATCH pattern] [COUNT count]
遍历 set 类型,返回 value ...HSCAN key cursor [MATCH pattern] [COUNT count]
遍历 hash 类型,返回 (key, value)ZSCAN key cursor [MATCH pattern] [COUNT count]
遍历 sorted set 类型,返回 (score, member)
scan 0 count 100
每次会返回一个新的游标,用于下一次 scan 请求。
import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
for key in r.scan_iter():
print(key)