redis数据类型总结

redis数据类型

redis支持五种数据类型:

  • string(字符串)
  • hash(哈希)
  • list(列表)
  • set(集合)
  • zset(sorted set:有序集合)

string(字符串)

string 是 redis 最基本的类型,一个 key 对应一个value

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如 jpg图片或者序列化的对象

string 类型是 Redis 最基本的数据类型,string 类型的值最大512MB

例如: SET key value SET name “jim” SET 和 GET 命令。键为 name,对应的值为 jim。

​ GET key GET name

hash(哈希)

redis hash 是一个键值(key=>value)对集合

redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象

例如:HMSET key key1 value1 key2 value2 HMSET name field1 “Hello” field2 “World”

​ HGET key key1 HGET name field1

​ HGET key key2 HGET name field2

​ DEL key DEL name (删除)

HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value。每个 hash 可以存储 232 -1 键值对(40多亿)

list(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

例如: rpush key value1 push name zhangsan 向尾部存储

​ rpush key value2 push name lisi

​ rpush key value3 push name wangwu

​ lrange key lrange name (zhangsan lisi wangwu)123

​ lpush key value4 push name liming 向头部存储

​ lrange key lrange name ( liming zhangsan lisi wangwu)4123

列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存40多亿个成员)

set(集合)

Redis 的 Set 是 string 类型的

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)

sadd命令:添加一个 string 元素到 key 对应的 set 集合中,成功返回 1,如果元素已经在集合中返回 0

例如:sadd key value1

​ sadd key value2 (存入成功返回1)

​ sadd key value2 (已存在,存入失败,返回0)

​ smembers key (返回(1,2)或者(2,1)无序的)

以上实例中 value2添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。最大的成员数为 232 -1(4294967295, 每个集合可存储 40多亿个成员)。

zset(sorted set:有序集合)

redis zset 和 set 一样也是 string 类型元素的集合,且不允许重复的成员

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序

zset 的成员是唯一的,但分数(score)却可以重复

zadd命令:添加元素到集合,元素在集合中存在则更新对应 score

在这里插入图片描述

设置失效时间

有时候我们并不希望 redis 的 key 一直存在。例如缓存,验证码等数据,我们希望它们能在一定时间内自动的被销

毁。redis 提供了一些命令,能够让我们对 key设置过期时间,并且让 key过期之后自动删除

设置值时直接设置有效时间

EX 表示以秒为单位

PX 表示以毫秒为单位 EX,PX 不区分大小写

在这里插入图片描述

set name jim EX 30 设置失效时间为 30 秒

查看设置后剩余的时间

ttl 键 查看剩余时间(秒)

pttl 键 查看剩余时间(毫秒)

设置值后设置有效时间

expire 键 时间(秒)

EX 30 设置失效时间为 30 秒

查看设置后剩余的时间

ttl 键 查看剩余时间(秒)

pttl 键 查看剩余时间(毫秒)

设置值后设置有效时间

expire 键 时间(秒)

pexpire 键 时间(毫秒)

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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值