Redis 五大数据类型
发布日期:2021-05-10 10:39:05 浏览次数:19 分类:精选文章

本文共 1969 字,大约阅读时间需要 6 分钟。

最近开始学习Redis,一种基于内存的_noSQL数据库,支持持久化存储(RDB、AOF),适用于高速缓存场景。这分为16个数据库,编号从0到15,集成简单的数据库切换命令,可用flushdb清空当前数据库。

一、字符串类型(String)

字符串类型是Redis最基本的数据存储类型,适用于存储序列化后的对象、图片或二进制数据,最大存储空间可达512MB。操作命令包括:

  • set key value:创建或更新字符串值。
  • append key value:向字符串末尾追加新值。
  • keys *:列出数据库中所有键。
  • exist key:判断特定键是否存在。
  • strlen key:获取字符串长度。
  • incr/decr key:对字符串键值执行增减操作。
  • incrby/decrby key number:对字符串键值执行增减指定量操作。
  • getrange key start end:按[start, end]区间截取字符串子串。
  • setex key duration value:设置带有生存时间的字符串。
  • setnx key value:只当键不存在时才设置字符串值。
  • mset/mget:支持批量操作的set/get命令,可用msetnx

通过以上操作,可以轻松创建计数器或统计多单位数据如点击量。

二、列表类型(List)

列表是一种链表结构,支持重复元素,可充当栈或队列,结构类似双向链表。常用命令包括:

  • lpush list value:向列表头部添加元素。
  • lrange list start end:遍历指定范围内的列表元素。
  • lpop list:从列表头部取出元素。
  • rpush list value:向列表尾部添加元素。
  • lindex list index:通过下标获取列表中元素。
  • lrem list value count:移除列表中指定次数的指定值。
  • ltrim list start end:清除列表两端超出指定范围的元素。
  • rpoplpush list new_list:将源列表最后一个元素移动至新列表。
  • lset list index value:更新或新增列表中的元素。
  • linsert list position value:将指定值插入列表指定位置。

列表结构适合用来实现消息队列功能。

三、集合类型(Set)

集合是一种无重复元素的无序集合,可用来实现交集、并集、差集等操作。常见命令有:

  • sadd set value:将元素添加至集合。
  • smembers set:获取集合中所有元素。
  • sismember set value:判断元素是否存在于集合中。
  • scard set:获取集合的元素数量。
  • srandmember set:随机抽取集合中的一个元素。
  • spop set:从集合中随机移出一个元素。
  • smove set old_val new_val:将元素从一个集合移动至另一个集合。

集合类型可用于社交存储共同关注的用户,实现二度好友关系等复杂场景。

四、哈希类型(Hash)

哈希类型类似于字典或映射关系,适合存储对象数据。常用命令包括:

  • hset hash key value:设置哈希字段值对。
  • hget hash key:获取哈希字段值。
  • hgetall hash:获取完整的哈希键值对列表。
  • hdel hash key:删除哈希字段。
  • hlen hash:获取哈希字段总数。
  • hexists hash key:检查哈希字段是否存在。
  • hkeys hash:遍历哈希键列表。
  • hvals hash:遍历哈希值列表。
  • hincrby/decrby hash key number:增减哈希字段值。

哈希类型在人face信息存储方面应用广泛。

五、有序集合类型(Zset)

Zset在集合基础上增加了顺序值(score),用于排序存储元素。这类数据适合实现排行榜功能。常用命令包括:

  • zadd zset key score:将元素添加至有序集合。
  • zrange zset start end:按默认升序输出有序集合元素。
  • zrangebyscore zset 0 100:根据score范围遍历元素。
  • zrevrange zset:按降序输出有序集合元素。
  • zrem zset:删除有序集合中的元素。
  • zcard zset:获取有序集合元素数量。
  • zrevangebyscore zset:按降序按score输出元素。
  • zcount zset 10 20:统计指定score范围内的元素数量。

有序集合可通过score值实现灵活的排行榜功能。下次更新时,还将介绍Redis的三大特殊类型:Geospatial、Hyperloglog和Bitmaps,这些类型在高级应用中应用广泛。

上一篇:Redis 三种特殊数据类型 geospatial,Hyperloglog,Bitmaps
下一篇:寻找旋转数组的最小数字

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月17日 02时10分20秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章