Redis规范

1 键值对的建议

1.1、key名建议;

建议key name设计:业务名:表名:id

比如:

 set school:student:1 martin

要求:不包含特殊字符

1.2、string 类型控制在10 KB以内,hash、list、set、zset元素个数不要超过5000;

1.3、控制key的过期时间;

使用expire设置key的过期时间,防止Redis中残留大量废弃的数据,Redis不是垃圾桶,内存很贵的。

当然,同一个Redis里面的key过期时间也尽量错开,集中过期,可能会导致缓存雪崩

2 禁用一些高危命令

2.1、危险命令直接禁用;

比如:

 keys *flushallflushdb

当然,可以考虑直接在配置中禁用这些命令

在配置文件中增加

 rename-command flushall ""rename-command flushdb ""rename-command keys ""

或者创建一个ACL用户

 ACL SETUSER martin on >martin123 +@all -@dangerous ~*

解释

+@all 所有的命令

-@dangerous 表示禁用危险命令

~* 表示授权所有的key

dangerous危险命令包括:FLUSHALL, MIGRATE, RESTORE, SORT, KEYS, CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF

2.2、尽量不全量操作Hash、Set等集合结构;

如果单个集合结构里有多个元素,单次操作过多的元素,效率可能会很低,并且可能把网卡流量打满。

3 设计规范

3.1、不同场景合理使用不同的数据结构;

比如排行榜可以使用zset;

地理位置,可以用GEO;

队列可以用list;

计数器可以用string类型。

3.2、不要将所有的数据都放Redis里面;

建议Redis只做热数据缓存,冷数据放到MySQL或者其他数据库里。

一方面,内存是比较贵的,可以节约成本;

另一方面,放到关系型数据库中,数据很难丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值