本文学习记录一下Redis的常用数据类型,更详细的介绍可以前往Redis官网
Redis的主要数据类型为:Strings(字符串),Lists(列表),Sets(集合),zset(Sorted Set有序集合),Hashes(散列)
类型 | 简介 | 特点 | 应用场景 | 相关命令 |
---|---|---|---|---|
String | 字符串 | 二进制安全,可以包含任何数据。比如jpg图片或者序列化的对象,一个键最大能存储512M | —- | set mykey somevalue # 存入key-valueget mykey # 取值del mykey # 删除key-value |
List | 链表(双向链表) | 增删速度快,按照插入顺序排序 | 最新消息排行,消息队列 | lpush mylist A B C #向list头部插入元素rpush mylist D # 向list尾部追加元素lrange mylist 0 -1 # 取出一定范围的元素,负数表示从末尾倒数lpop mylist # 在list头部删除一个元素,并返回被删除元素rpop mylist # 在list尾部删除一个元素,并返回被删除元素 |
Set | 集合 | 元素不重复,通过hashtable实现,提供了并集、交集、差集的操作 | 共同好友;利用唯一性,统计数据 | sadd myset A B C # 向集合添加元素smembers myset # 输出集合所有元素sismember myset A # 检测元素是否存在set中spop myset 2 # 从集合中删除2个元素,并返回被删除元素 srem myset A B # 从集合中删除指定元素,返回受影响元素个数 |
zset | 有序集合 | 根据score排序,可检索 | 排行榜,带权重的消息队列 | zadd hackers 19 “A” # 存入数据,19为score分数,A为元素zadd hackers 19 “B” 20 “C” # 同时存入多个元素,score允许重复zrange hackers 0 -1 # 获取一定范围的元素,负数表示从末尾倒数zrevrange hackers 0 -1 # 倒序获取一定范围的元素,负数表示从末尾倒数zrangebyscore hackers -inf 19 # 获取分数在19-无穷大的元素zremrangebyscore hackers 19 60 # 移除分数在19-60范围内的元素 |
Hash | 散列,键值对集合 | 适合存储对象,类似Map类型 | 存储、读取、修改用户属性 | hset user001 username “antirez” # 设置user001的username属性hget user001 username # 获取user001的username属性值hmset user001 username “antirez” sex 1 # 存入数据,user001为key,username和sex为其中的字段hmget user001 username sex # 获取user001中的username和sex属性的值hexist user001 sex # 判断user001是否存在sex属性hdel user001 username sex # 删除user001中的username和sex属性 |