• Redis-key的设计技巧


    1. 把表名转换为key前缀, 比如: tag:
    2. 第二段放置用于区分key的字段--对应mysql中的主键的列名
    3. 第三段放置主键值
    4. 第三段写列名

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

    useridusernamepasswordemail
    9Lisi111111lisi@163.com

    比如:

    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> 
    
    
  • 相关阅读:
    如何招到一个靠谱的程序员_转
    区块链blockchina简述
    TCP和UDPsocket中SO_SNDBUF和SO_RCVBUF_转
    Medium开发团队谈架构设计_转
    cgi与fastcgi区别_转
    RESTful
    各种开源协议介绍 BSD、Apache Licence、GPL V2 、GPL V3 、LGPL、MIT_转
    mosquitto简单应用
    组播MAC地址_转
    纳德拉再造微软:如何重回第一阵营?
  • 原文地址:https://www.cnblogs.com/qlshine/p/5962229.html
Copyright © 2020-2023  润新知