Redis 八大数据类型详解
创作时间:
作者:
@小白创作中心
Redis 八大数据类型详解
引用
CSDN
1.
https://blog.csdn.net/weixin_38854703/article/details/113172763
Redis 是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis 支持多种数据结构,包括字符串、列表、哈希表、集合、有序集合等。本文将详细介绍 Redis 的八大数据类型及其应用场景。
Redis 的五大基本数据类型
String(字符串)
应用场景:
- 实现计数器(如文章阅读量)
- 存储 JSON 对象
常用命令:
SET key value
:设置字符串值GET key
:获取字符串值INCR key
:将字符串值自增 1DECR key
:将字符串值自减 1
List(列表)
应用场景:
- 消息队列(使用
LPUSH
和RPOP
命令) - 栈(使用
LPUSH
和LPOP
命令)
常用命令:
LPUSH key value
:从列表头部添加元素RPUSH key value
:从列表尾部添加元素LPOP key
:从列表头部移除元素RPOP key
:从列表尾部移除元素LLEN key
:获取列表长度LRANGE key start stop
:获取列表指定范围内的元素
Hash(哈希表)
应用场景:
适合存放经常变动的对象,可以直接修改某个属性,而不需要像字符串类型那样先转换成实体类再修改。
常用命令:
HSET key field value
:设置哈希表字段的值HGET key field
:获取哈希表字段的值HGETALL key
:获取哈希表中所有字段和值HSETNX key field value
:仅当字段不存在时设置其值HDEL key field [field ...]
:删除一个或多个哈希表字段
Set(集合)
应用场景:
- 共同好友、共同关注(使用
SINTER key1 key2
获取交集) - 可能认识的人(使用
SDIFF key1 key2
获取差集) - 点赞功能(使用
SADD key value
添加,SREM key value
删除,SCARD key
统计数量) - 随机抽奖功能(使用
SPOP key
随机删除元素或SRANDMEMBER key
随机抽取元素)
常用命令:
SADD key member [member ...]
:向集合添加一个或多个成员SMEMBERS key
:获取集合中的所有成员SISMEMBER key member
:判断成员是否在集合中SINTER key [key ...]
:获取多个集合的交集SDIFF key [key ...]
:获取多个集合的差集SUNION key [key ...]
:获取多个集合的并集SCARD key
:获取集合的成员数量SPOP key
:随机移除并返回集合中的一个成员SRANDMEMBER key [count]
:随机返回集合中的一个或多个成员
ZSet(有序集合)
应用场景:
热点新闻(使用 ZINCRBY key increment member
增加权重,ZREVRANGE key start stop withscores
获取前 N 条热点新闻)
常用命令:
ZADD key score member [score member ...]
:向有序集合添加一个或多个成员,或更新已存在成员的分数ZRANGE key start stop [WITHSCORES]
:获取有序集合中指定范围的成员ZREVRANGE key start stop [WITHSCORES]
:获取有序集合中指定范围的成员,按分数降序排列ZINCRBY key increment member
:为有序集合中的成员增加分数ZSCORE key member
:获取成员的分数ZCARD key
:获取有序集合的成员数量ZRANK key member
:获取成员在有序集合中的排名(从小到大)ZREVRANK key member
:获取成员在有序集合中的排名(从大到小)ZREM key member [member ...]
:移除一个或多个成员
跳跃表
跳跃表是基于多指针有序链表实现,可以看成多个有序链表,在查找时从上层指针开始查找,找到对应的取经后再到下一层查找。
跳跃表优点:
- 插入速度非常快,不需要进行旋转等操作来维护平衡性
- 更容易实现
- 支持无锁操作
Redis 三种特殊数据类型
Geospatial(地理位置)
应用场景:
- 附近的人
- 根据溺水人员地理位置获取附近的救援人员
常用命令:
GEOADD key longitude latitude member [longitude latitude member ...]
:添加地理位置GEOPOS key member [member ...]
:获取地理位置坐标GEODIST key member1 member2 [unit]
:计算两个成员之间的距离GEORADIUS key longitude latitude radius unit [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
:以给定的经纬度为中心,返回键包含的位置元素当中,与中心的距离不超过给定最大距离的所有位置元素GEORADIUSBYMEMBER key member radius unit [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
:以给定成员为中心,返回键包含的位置元素当中,与中心的距离不超过给定最大距离的所有位置元素GEOHASH key member [member ...]
:返回一个或多个位置元素的 Geohash 表示
Hyperloglog(统计)
应用场景:
网页的 UV(一个人访问一个网站多次,但是还是算作一个人)
常用命令:
PFADD key element [element ...]
:将一个或多个元素添加到 HyperLogLog 中PFCOUNT key [key ...]
:返回 HyperLogLog 的基数估计值PFMERGE destkey sourcekey [sourcekey ...]
:合并一个或多个 HyperLogLog 到目标 HyperLogLog
Bitmap(位图)
应用场景:
统计用户信息活跃与不活跃、登录与未登录、打卡等两个状态的场景
常用命令:
SETBIT key offset value
:设置位图中指定偏移量的位值GETBIT key offset
:获取位图中指定偏移量的位值BITCOUNT key [start end]
:计算位图中指定范围内的位值为 1 的数量BITOP operation destkey key [key ...]
:对一个或多个位图执行位操作
热门推荐
中国传统音乐录音档案:守护中国音乐文化记忆
中老年人注意:早餐少吃馒头和稀饭,多吃这4种,低脂饱腹又健康
八字命理喜用神:概念、判断方法及应用
浅谈靛蓝染与阿波罗正蓝染
CMOS晶体管详解:从基本原理到反相器工作原理
长期喝酒的人,突然把酒戒掉,是好事还是坏事?看看这些研究怎么说
金湾超50亿,高新跌13.9%!珠海各地2024年1-12月财政收入排行
秦诏版的历史意义及艺术特色
AI+电力:未来十年的黄金赛道
土壤改良剂:定义、组成、目的、应用及生态问题
带潼字取名(有潼字起什么名字好听女孩)
从“内卷”与“躺平”说开去
痣相由的秘密:如何通过痣的位置解读个人命运
事业单位和公司有什么区别
四川省地震局:“智慧地震预警 助力安全发展”
电子迁移率表示什么
四川:历史灾害的镜鉴--从灾难中汲取力量,共筑安全防线
拥抱:情感交流的艺术与科学
生物农药:浪潮涌动蕴新机——第十四届生物农药发展与应用交流会侧记
岩土工程技术专业怎么样?就业前景和核心技能有哪些?
左耳耳鸣是什么原因 怎样治疗
保护听力:耳鸣患者必知的五个细节
震撼!盘点游戏中那些极具史诗感的BOSS战
现代战争中的雷达系统应用解析
八字命理中的女性养生之道
玫瑰糠疹最坏的后果
应急逃生疏散知识
弗朗茨·卡夫卡:现代主义的杰出先驱
碳酸氢钠/小苏打
房屋产权年限解析:住宅70年、商住50年、商业40年