redis使用规范

本文阐述了Redis使用的若干关键原则,包括设置超时时间防止内存溢出,避免使用非0数据库以确保集群扩展性,冷热数据分离提升性能,合理利用list、map、set等数据结构,规范化key命名并压缩大文本数据,以及线上Redis禁用Keys正则匹配操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设置超时时间[最重要]

每个存储数据都需设定生存时间,否则导致一直占用内存。

尽量不使用非0数据库

Redis单例模式有16个数据库(0-15),默认使用0号数据库。Redis官方的集群方案,默认只使用0号数据库,为后续扩展性,业务中禁止使用非0数据库。 

冷热数据分离,不要将所有数据全部都放到Redis中

高频数据存入Redis缓存,低频数据不要存入Redis缓存。

高频数据是经常访问的数据,在这里做好压力缓冲就行了。对于大量数据和列表数据尤其适用。

例如:一些枚举类型,低频变更,适合存入Redis

合理使用list,map,set等集合结构

结合具体业务,设置合理的数据结构,找出更好的选择。 集合结构还可以减少key的个数。

合理设置key的格式

多系统在共用缓存,需要key唯一。Key禁止使用中文。易读,有规律。有规律的key可以进行正则匹配操作。(类似RabbitMQ-Exchange-Topic)

key的格式,如:项目名:模块名:业务Key

Key的命名空间使用连字符:而不是 _

对于必须要存储的大文本数据一定要压缩后存储


对于大文本【超过500字节】写入到Redis时,一定要压缩后存储!大文本数据存入Redis,除了带来极大的内存占用外,在访问量高时,很容易就会将网卡流量占满,进而造成整个服务器上的所有服务不可用,并引发雪崩效应,造成各个系统瘫痪!

线上Redis禁止使用Keys正则匹配操作


Redis是单线程处理,在线上KEY数量较多时,操作效率极低【时间复杂度为O(N)】,该命令一旦执行会严重阻塞线上其它命令的正常请求,而且在高QPS情况下会直接造成Redis服务崩溃!如果有类似需求,请使用scan命令代替!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值