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 ...]:对一个或多个位图执行位操作
热门推荐
米其林三星餐厅的鸡肉烹饪秘诀:从选材到创新的全方位解析
10种鸡大腿花式吃法,总有一款让你欲罢不能
小型化CRISPR-Cas系统破解递送难题,基因治疗迎来新机遇
香港首次发现恐龙化石
6500万年前恐龙灭绝后,地球生命经历了怎样的演化?
CBA强强对话:山西男篮客场挑战北京首钢,两队仅差一个胜场
上海到舟山自驾游,最新路线攻略
甘草养生茶致低钾血症,专家提醒:中药茶饮需科学饮用
LOL手游女警玩法指南:出装、天赋到实战技巧
皮城女警凯特琳:20款皮肤原画及背后故事详解
从警探到战士:凯特琳皮肤设计图鉴
如何为孩子创造良好的语言环境
春节成为联合国假日:文化影响力与全球意义
春节:从中国节日到世界非遗
春节家庭团聚,如何玩转温馨时光?
普吉特海湾现罕见一幕:虎鲸再次上演"鲑鱼顶头秀"
2025全国1%人口抽样调查:精准施策的重要基石
全国1%人口抽样调查揭示的社会变迁
快速准确检测食品添加剂,这款仪器为安全饮食保驾护航
BMI爆表?教你科学瘦身
黄原胶创意料理,健康美味两不误
最新汇率:150万日元兑换人民币计算方法
或许从某种意义上来讲,地球上进化最完美的生物是蚂蚁且没有之一
香甜软糯驴打滚,承载京味文化记忆
过年焦虑?这几招让你告别“年味儿焦虑”
CBA季后赛前夕:北京双雄各有优劣,球迷期待突破
中级法院再审程序:保障司法公正的最后一道防线
当苏联梦撞上美国梦,中国梦接盘?《Go West》背后的故事
重温童年味道:家常酸菜鱼的温暖做法分享
中医食疗四季养生法,专家推荐