string 字符串

  1. 缓存功能
    比如缓存用户的信息,将一个对象序列化后,缓存到redis中。
  2. 计数功能
    记录粉丝数、视频播放量等等。
  3. 共享session
    将session会话信息保存到redis中,多个服务器通过redis来获取session会话信息。
  4. 限速
    例如限制手机号每分钟发送短信数不超过4条,可以设置一个key为msg:limit:135xxxxxxxx,值为发送次数的字符串,并且有效期是60s,当存在该key并发送次数大于4时,将不能发送短信。

hash 哈希

  1. 用来保存对象
    如用户信息、商品信息等,map中的key是字段名,value是字段的值。可以对应mysql数据库,以user表为例:
    user表中有3个字段:uid、name、gender、major;对应值为1、xiaoma、man、computer。
    则保存到redis中的命令:
    set user:1 name xiaoma 
    set user:1 gender man 
    set user:1 major computer

    扩展:从上述的例子中我们似乎可以总结出redis中键key的命名方式,一般推荐使用“业务名:对象:id:[属性]”(也可以不要分号)。例如MySQL的数据库名为vs,用户表为user,那么对应的键就可以用“vs:user:1”,“vs:user:1:name”来表示,如果redis只被一个业务使用,也可以去掉“vs:”。

list 列表

  1. 消息队列
    可以通过redis的lpush+brpop命令组合即可实现阻塞队列,生产者客户端使用lpush从列表左侧插入元素,多个消费者客户端使用brpop命令阻塞式的“抢”列表尾部的元素。
  2. 文章列表
    存储每个用户自己的文章列表,并可以实现分页。
  3. 其他
    lpush + lpop = Stack(栈)
    lpush + rpop = Queue(队列)
    lpush + ltrim = Capped Collection(有限集合)
    lpush + brpop = Message Queue(消息队列)

set 集合

  1. tag 标签
    找共同兴趣
  2. 粉丝
    找共同粉丝

zset有序集合

  1. 排行榜系统