Redis的数据类型及使用场景

一、Redis的数据结构

       存储的时候key和value都是String,value支持String、hash、list、set、zset等数据结构。  redis内部的key-value通过一个redisObject对象来存储,type表示value的类型(string等),encoding表示存储方式(raw/int等)

1. String

      结构:key-value  
      常用方法:set、setex、setnx(setIfNotExist)、get、incr/decr
      使用场景:存task、分布式锁、存int值做自增计数(incr具有原子性)

2. Hash 哈希表

      结构:key:[field-value; field-value;]  映射关系,底层用hashMap存储的数据
      常用方法:hset(key, field, value);  hget/hexists/hdel(key, field);  hgetAll(key)  
      使用场景:存客服的会话list(field会话key,value会话详情)、对工单的星标类型(field工单id,value星标类型)

3. List 列表

      结构:key:[value;  value;]  有序可重复,底层是双向链表实现的。头尾添加元素快,查找慢。
      常用方法:lpush/rpush增、lpop/rpop删、lset(设置索引位置的值)、查lrange(key,start,end):可为负数-1表示链表尾部-2表示倒数第二个。 L是左边队头,R是右边队尾。
      使用场景:做简单的消息队列功能,可以确保先后顺序;利用lrange做分页功能;

4. Set 集合

      结构:key:[value1; value2;]  无序,不可重复。  底层用value为null的hashMap存储的
      常用方法:sadd增、srem删、sismember/smembers查;
      使用场景:需要做数据去重时。

5. sortedSet (zset) 有序集合

     结构:key:[value-score; value-score]    底层使用HashMap和跳跃表(SkipList)来保证数据的存储和有序。
     常用方法:zadd增、zrem删、zrange查
     使用场景:做排序、取topK、范围查找等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值