返回Redis-k......登陆

Redis-key的设计技巧

阿神2016-11-09 13:49:04520

1.把表名转换为key前缀, 比如: tag:

2.第二段放置用于区分key的字段--对应mysql中的主键的列名

3.第三段放置主键值

4.第三段写列名

用户表user, 转换为redis的key-value存储

7.png

比如:

127.0.0.1:6379> set user:userid:9:username lisi
OK
127.0.0.1:6379> set user:userid:9:password 111111
OK
127.0.0.1:6379> set user:userid:9:email lisi@163.com
OK
127.0.0.1:6379>
127.0.0.1:6379> keys user:userid:9*    #查找有几个属性
1) "user:userid:9:password"
2) "user:userid:9:username"
3) "user:userid:9:email"
127.0.0.1:6379>

注意: 实际中经常要通过username来查找信息, 只能通过再建立一个对应关系

127.0.0.1:6379> set user:username:lisi:userid 9    #建立一个username和userid对应的表
OK
127.0.0.1:6379> 
127.0.0.1:6379> get user:username:lisi:userid    #获取到userid
"9"
127.0.0.1:6379> 
127.0.0.1:6379> keys user:userid:9*    #通过userid找到所有键
1) "user:userid:9:password"
2) "user:userid:9:username"
3) "user:userid:9:email"
127.0.0.1:6379> 
127.0.0.1:6379> get user:userid:9:email    #获取其它键的信息
"lisi@163.com"
127.0.0.1:6379>

如果要通过email查询, 只能再维护

127.0.0.1:6379> set user:email:lisi@163.com:userid 9
OK
127.0.0.1:6379> get user:email:lisi@163.com:userid
"9"
127.0.0.1:6379> keys user:userid:9*
1) "user:userid:9:username"
2) "user:userid:9:email"
3) "user:userid:9:password"
127.0.0.1:6379>


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送