Redis支持五种数据类型
2021/7/21 2:09:12
本文主要是介绍Redis支持五种数据类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Redis支持五种数据类型
- String(字符串
- Hash(哈希)
- List(列表)
- Set(集合)
- zset(sorted set:有序集合)
类型 | 简介 | 特性 | 场景 |
---|---|---|---|
String(字符串) | 二进制安全 | 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M | — |
Hash(字典) | 键值对集合,即编程语言中的Map类型 | 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去) | 存储、读取、修改用户属性 |
List(列表) | 链表(双向链表) | 增删快,提供了操作某一段元素的API | 1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列 |
Set(集合) | 哈希表实现,元素不重复 | 1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作 | 1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐 |
Sorted Set(有序集合) | 将Set中的元素增加一个权重参数score,元素按score有序排列 | 数据插入集合时,已经进行天然排序 | 1、排行榜 2、带权重的消息队列 |
String(字符串)
string类型是二进制安全的,redis的string可以包含任何数据,如图像、序列化对象。一个键最多能存储512MB。二进制安全是指,在传输数据的时候,能保证二进制数据的信息安全,也就是不会被篡改、破译;如果被攻击,能够及时检测出来 。
-
设置键值 :
set key value
-
获取键值 ,如果不存在此键则返回nil :
get key
-
设置多个键值:
mset key1 value1 key2 value2
-
获取多个键值:
mget key1 key2
-
设置键值及过期时间,以秒为单位 :
setex key seconds value
-
只有在 key 不存在时设置 key 的值。
setnx key value
-
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
MSETNX key value [key value ...]
-
返回 key 中字符串值的子字符
GETRANGE key start end
-
将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
GETSET key value
-
将key对应的value加1 。
INCR key
-
将key对应的value加整数 。
INCRBY key increment
-
将key对应的value减1 。
DECR key
-
将key对应的value减整数。
DECRBY key decrement
-
追加值
APPEND key value
-
获取值长度
STRLEN key
hash
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 2的32次方 - 1 键值对(40多亿)。
- 设置单个属性 :
hset key field value
- 设置多个属性 :
hmset key field1 value1 field2 value2 ...
- 只有在字段 field 不存在时,设置哈希表字段的值。
HSETNX key field value
- 获取⼀个属性的值 :
hget key field
- 获取多个属性的值 :
hmget key field1 field2 ...
- 获取指定键所有的属性 :
hkeys key
- 获取指定键所有属性的值:
hvals key
- 删除属性及值 :
hdel key field1 field2 ..
. - 删除整个hash键及值 :
del key
- 判断属性是否存在 :
hexists key field
list
列表是简单的string列表,按照插入顺序排序,可以在列表的头部或者尾部添加元素。
- 在左侧插⼊数据 :
lpush key value1 value2 ...
- 在右侧插⼊数据 :
rpush key value1 value2 ...
- 在指定元素的前或后插⼊新元素 :
linsert key before或after 现有元素 新元素
- 返回列表⾥指定范围内的元素 :
lrange key start stop
- start、stop为元素的下标索引
- 索引从左侧开始,第⼀个元素为0
- 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
- 设置指定索引位置的元素值 :
lset key index value
- 索引从左侧开始,第⼀个元素为0
- 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素
- 移出并获取列表的第一个元素 :
lpop key
- 移出并返回列表最后一个元素 :
rpop key
- 删除指定元素:
lrem key count value
- 将列表中前count次出现的值为value的元素移除
- count > 0: 从头往尾移除
- count < 0: 从尾往头移除
- count = 0: 移除所有
- 获取列表长度:
llen key
- 通过索引获取列表中的元素:
lindex key index
set
⽆序集合,元素为string类型,元素具有唯⼀性,不重复。说明:对于集合没有修改操作。
- 添加元素 :
sadd key member1 member2 ...
- 返回集合元素个数:
scard key
- 返回key集合所有的元素 :
smembers key
zset
sorted set,有序集合,元素为string类型,元素具有唯⼀性,不重复。每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序。说明:没有修改操作。
- 添加元素:
zadd key score1 member1 score2 member2 ..
向键’a4’的集合中添加元素’lisi’、‘wangwu’、‘zhaoliu’、‘zhangsan’,权重分别为4、5、6、3
-
返回指定范围内的元素 :
zrange key start stop
-
返回元素个数:
zcard key
-
返回score值在min和max之间的成员 :
zrangebyscore key min max
-
返回成员member的score值 :
zscore key member
-
删除指定元素 :
zrem key member1 member2 ..
-
删除权重在指定范围的元素:
zremrangebyscore key min max
这篇关于Redis支持五种数据类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识