redis的数据类型、应用场景

一、常用数据类型和应用场景

Redis是一个Key-Value的存储系统,使用ANSI C语言编写。

key的类型是字符串。value的数据类型有:

常用的:string字符串类型、list列表类型、set集合类型、sortedset(zset)有序集合类型、hash类型。
不常见的:bitmap位图类型、geo地理位置类型。
Redis5.0新增一种:stream类型
注意:Redis中命令是忽略大小写,(set SET),key是不忽略大小写的 (NAME name)
1.String类型
RedisString能表达3种值的类型:字符串、整数、浮点数 100.01 是个六位的串

1.1常用操作
命令名称                           	命令描述
set set key value                    赋值
get get key                          取值
getset getset key value            取值并赋值
setnx setnx key value          当value不存在时采用赋值
set key value NX PX 3000        原子操作,px 设置毫秒数
append append key value             向尾部追加值
strlen strlen key                  获取字符串长度
incr incr key                        递增数字
incrby incrby key increment        增加指定的整数
decr decr key                         递减数字
decrby decrby key decrement        减少指定的整数

1.2应用场景
 - 1、key和命令是字符串 
 - 2、普通的赋值 
 - 3、incr用于乐观锁 incr:递增数字,可用于实现乐观锁 watch(事务)
 - 4、setnx用于分布式锁 当value不存在时采用赋值,可用于实现分布式锁
2.List表
list列表类型可以存储有序、可重复的元素
获取头部或尾部附近的记录是极快的
list的元素个数最多为2^32-1个(40亿)

2.1常用操作如下图所示

在这里插入图片描述

2.2应用场景
 - 作为队列使用(先进先出)或者作为栈使用(先进后出)
	列表有序可以作为栈和队列使用
 - 可用于各种列表,比如用户列表、商品列表、评论列表等

3.Hash类型(散列表)

在这里插入图片描述

3.1常用操作
命令名称                           命令格式                               描述
hset                       hset key field value                    赋值,不区别新增或修改
hmset                     hmset key field1 value1 field2 value2        批量赋值
hsetnx                      hsetnx key field value               赋值,如果filed存在则不操作
hexists                      hexists key filed                   查看某个field是否存在
hget                         hget key field                       获取一个字段值
hmget                       hmget key field1 field2 ...              获取多个字段值
hgetall                         hgetall key
hdel                         hdel key field1 field2...              删除指定字段
hincrby                   hincrby key field increment            指定字段自增increment
hlen                               hlen key                           获得字段数量

3.2应用场景
对象的存储 ,表数据的映射
4.set集合类型
无序、唯一元素,集合中最大的成员数为 2^32 - 1


4.1常用操作
命令名称           命令格式                      描述
sadd            sadd key mem1 mem2....    为集合添加新成员
srem            srem key mem1 mem2....    删除集合中指定成员
smembers        smembers key              获得集合中所有元素
spop             spop key             返回集合中一个随机元素,并将该元素删除
srandmember     srandmember key        返回集合中一个随机元素,不会删除该元素
scard             scard key               获得集合中元素的数量
sismember       sismember key member       判断元素是否在集合内
sinter          sinter key1 key2 key3       求多集合的交集
sdiff           sdiff key1 key2 key3          求多集合的差集
sunion           sunion key1 key2 key3       求多集合的并集

4.2 应用场景
适用于不能重复的且不需要顺序的数据结构
比如:关注的用户,还可以通过spop进行随机抽奖
5.Sortedset有序集合类型
SortedSet(ZSet) 有序集合: 元素本身是无序不重复的
每个元素关联一个分数(score),可按分数排序,分数可重复

5.1常用操作
命令名称                     命令格式                                描述
zadd         zadd key score1 member1 score2member2 ...      为有序集合添加新成员
zrem             zrem key mem1 mem2 ....                   删除有序集合中指定成员
zcard                   zcard key                         获得有序集合中的元素数量
zcount              zcount key min max             返回集合中score值在[min,max]区间的元素数量
zincrby           zincrby key increment member           在集合的member分值上加increment
zscore               zscore key member                      获得集合中member的分值
zrank                  zrank key member           获得集合中member的排名(按分值从小到大)
zrevrank              zrevrank key member             获得集合中member的排名(按分值从大到小)
zrange               zrange key start end              获得集合中指定区间成员,按分数递增排序
zrevrange            zrevrange key start end             获得集合中指定区间成员,按分数递减排序

5.2应用场景
由于可以按照分值排序,所以适用于各种排行榜。比如:点击排行榜、销量排行榜、关注排行榜等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Redis数据类型有String、Hash、List、Set、Zset、GEO、Stream、HyperLogLog和Bitmap。在实际应用中,不同的数据类型可以用于不同的场景。 1. String类型:主要用于缓存和存储单个的值,比如用户的登录信息、计数器等。 2. Hash类型:适用于存储和获取对象的多个字段,比如存储用户的信息、商品的属性等。 3. List类型:可以按照插入顺序存储多个值,并支持在列表的两端进行插入和删除操作,比如消息队列、实时聊天记录等。 4. Set类型:用于存储多个不重复的值,也可以进行交集、并集、差集等操作,比如存储用户的好友列表、标签等。 5. Zset类型:有序集合,每个元素都会关联一个分数,可以根据分数进行范围查找和排序,适用于排行榜、带权重的数据等。 6. GEO类型:用于地理位置信息的存储和查询,可以计算距离、查找附近的位置等。 7. Stream类型:适用于消息队列的场景,可以按照时间顺序存储和消费消息。 8. HyperLogLog类型:用于统计独立元素的个数,可以进行基数估算,适用于统计UV、PV等场景。 9. Bitmap类型:用于位图操作,可以进行位运算和统计,比如用户签到、在线状态等。 在实际应用中,根据具体的需求和数据特点,选择合适的Redis数据类型可以带来更好的性能和扩展性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [最全总结Redis数据类型使用场景](https://blog.csdn.net/qq_27681741/article/details/125289210)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酆都小菜鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值