zoukankan      html  css  js  c++  java
  • 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> 
    
    
  • 相关阅读:
    特殊方法(双下方法)
    反射
    属性
    类方法、静态方法
    封装
    python接口类,抽象类
    Yii2基本概念之——事件(Event)
    Yii2基本概念之——行为(Behavior)
    yii2 migrate 数据库迁移的简单分享
    Yii2.0 RESTful API 之速率限制
  • 原文地址:https://www.cnblogs.com/qlshine/p/5962229.html
Copyright © 2011-2022 走看看