Redis key的设计技巧
一,key设计原则
- 把表名转换为key前缀, 比如: tag:
- 第二段放置用于区分key的字段–对应mysql中的主键的列名
- 第三段放置主键值
- 第三段写列名
二,案例
用户表user, 转换为redis的key-value存储
uid username password phone
1 zhangsan 123 12222222
2 lisi 123 11111111
转储redis
127.0.0.1:7004> set user:uid:1:username zhangsan
-> Redirected to slot [7756] located at 127.0.0.1:7005
OK
127.0.0.1:7005> set user:uid:1:password 123
-> Redirected to slot [3299] located at 127.0.0.1:7004
OK
127.0.0.1:7004> set user:uid:1:phone 13333333
OK
获取信息 单机模式
127.0.0.1:7004> keys user:uid:1*
1) "user:uid:1:phone"
2) "user:uid:1:password"
集群模式则需要在所有nodes中输入该命令,最终整合结果集
三,注意
实际应用中,我们可能会经常根据username查询,假设有10000条记录,若下列查询
127.0.0.1:7004> keys user:uid:*:username:lisi
可能会在第[0-10000]次查