redis五大数据类型

1、String(字符串)

1、设置字符串值
	SET key value [EX seconds] [PX milliseconds] [NX|XX]
	EX 设置过期时间,秒,等同于SETEX key seconds value
	PX 设置过期时间,毫秒,等同于PSETEX key milliseconds value
	NX 键不存在,才能设置,等同于SETNX key value
	XX 键存在时,才能设置
	
2、设置多个键的字符串值
	MSET key value [key value ...]
	
3、键不存在时,设置字符串值
	MSETNX key value [key value ...]
	注意:这是原子操作

4、设置多少秒或者毫秒后过期
	EXPIRE key seconds
	PEXPIRE key milliseconds
	
5、设置在指定Unix时间戳过期
	EXPIREAT key timestamp
	PEXPIREAT key milliseconds-timestamp

6、查看剩余生存时间
	TTL key
	key存在但没有设置TTL,返回-1
	key存在,但还在生存期内,返回剩余的秒或者毫秒
	key曾经存在,但已经消亡,返回-2

7、查找键
	KEYS pattern
	pattern取值
	* 任意长度字符
	? 任意一个字符
	[] 字符集合,表示可以是集合中的任意一个

8、键类型
	TYPE key
9、键是否存在
	EXISTS key
10、键重命名
	RENAME key newkey
	RENAMENX key newkey
11、键删除
	DEL key [key ...]
12、获取值
	GET key
	获取多个给定的键的值
	MGET key [key ...]
13、返回旧值并设置新值
	GETSET key value
	如果键不存在,就创建并赋值
14、字符串长度
	STRLEN key
15、追加字符串
	APPEND key value
	如果键存在就追加;如果不存在就等同于SET key value
16、获取子字符串
	GETRANGE key start end
	索引值从0开始,负数表示从字符串右边向左数起,-1表示最有一个字符
17、覆盖字符串
	SETRANGE key offset value
18、步长1的增减
	INCR key
	DECR key
	字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串
19、步长增减
	INCRBY key decrement
	DECR key decrement
	字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串

2、List(列表)

命令说明
	B block 块,阻塞
	L left 左
	R right 右
	X exist 存在
1、左右或者头尾压入元素
	LPUSH key value [value ...]
	LPUSHX key value
	RPUSH key value [value ...]
	RPUSHX key value
2、左右或者头尾弹出元素
	LPOP key
	RPOP key
3、从一个列表尾部弹出元素压入到另一个列表的头部
	RPOPLPUSH source destination
4、返回列表中指定范围元素
	LRANGE key start stop
	LRANGE key 0 -1 表示返回所有元素
5、获取指定位置的元素
	LINDEX key index
6、设置指定位置元素的值
	LSET key index value
7、列表长度,元素个数
	LLEN key
8、从列表头部开始删除值等于value的元素count次
	LREM key count value
	count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count
	count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值
	count = 0 : 移除表中所有与 value 相等的值
9、去处指定范围外元素
	LTRIM key start stop
10、在列表中某个存在的值(pivot)前或后插入元素
	LINSERT key BEFORE|AFTER pivot value
	key和pivot不存在,不进行任何操作
11、左右或者头尾阻塞弹出元素
	BLPOP key [key ...] timeout
	BRPOP key [key ...] timeout
12、从一个列表尾部阻塞弹出元素压入到另一个列表的头部
	BRPOPLPUSH source destination timeout

3、Set(集合)

1、增加一个或多个元素
	SADD key member [member ...]
	如果元素已经存在,则自动忽略
2、移除一个或者多个元素
	SREM key member [member ...]
	元素不存在,自动忽略
3、返回集合包含的所有元素
	SMEMBERS key
	如果集合元素过多,例如百万个,需要遍历,可能会造成服务器阻塞,生产环境应避免使用
4、检查给定元素是否存在于集合中
	SISMEMBER key member
5、随机返回集合中指定个数的
	SRANDMEMBER key [count]
	如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合
	如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值
	如果 count 为 0,返回空
	如果 count 不指定,随机返回一个元素
6、返回集合中元素的个数
	SCARD key
	键的结果会保存信息,集合长度就记录在里面,所以不需要遍历
7、随机从集合中移除并返回这个被移除的元素
	SPOP key
8、把元素从源集合移动到目标集合
	SMOVE source destination member

9、差集
	SDIFF key [key ...],从第一个key的集合中去除其他集合和自己的交集部分
	SDIFFSTORE destination key [key ...],将差集结果存储在目标key中
10、交集
	SINTER key [key ...],取所有集合交集部分
	SINTERSTORE destination key [key ...],将交集结果存储在目标key中
11、并集
	SUNION key [key ...],取所有集合并集
	SUNIONSTORE destination key [key ...],将并集结果存储在目标key中


4、Hash(散列)

1、设置单个字段
	HSET key field value
	HSETNX key field value
	key的filed不存在的情况下执行,key不存在直接创建
2、设置多个字段
	HMSET key field value [field value ...]
3、返回字段个数
	HLEN key
4、判断字段是否存在
	HEXISTS key field
	key或者field不存在,返回0
5、返回字段值
	HGET key field
6、返回多个字段值
	HMGET key field [field ...]
7、返回所有的键值对
	HGETALL key
8、返回所有字段名
	HKEYS key
9、返回所有值
	HVALS key


5、Zset(有序集合)

类似Set集合
有序的、去重的
元素是字符串类型
每一个元素都关联着一个浮点数分值(Score),并按照分值从小到大的顺序排列集合中的元素。分值可以相同
1、增加一个或多个元素
	ZADD key score member [score member ...]
	如果元素已经存在,则使用新的score
举例
	ZADD fruits 3.2 香蕉
	ZADD fruits 2.0 西瓜
	ZADD fruits 4.0 番石榴 7.0 梨 6.8 芒果

在这里插入图片描述

2、移除一个或者多个元素
	ZREM key member [member ...]
	元素不存在,自动忽略
举例
	ZREM fruits 番石榴 梨 芒果
	ZREM fruits 西瓜

![在这里插入图片描述]( https://img-blog.csdnimg.cn/88e618c64c624b49a1d6581c6895f5e9.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5riF5qKm5riF5rKz,size_17,color_FFFFFF,t_70,g_se,x_16)

3、显示分值
	ZSCORE key member
举例
	ZSCORE fruits 芒果
	ZSCORE fruits 西瓜
计算机并不能精确表达每一个浮点数,都是一种近似表达

![在这里插入图片描述]( https://img-blog.csdnimg.cn/f7263676502b4aa3812d1568f3fcde1b.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5riF5qKm5riF5rKz,size_20,color_FFFFFF,t_70,g_se,x_16)

4、增加或者减少分值
	ZINCRBY key increment member
	increment为负数就是减少
举例
	ZINCRBY fruits 1.5 西瓜
	ZINCRBY fruits -0.8 香蕉

![在这里插入图片描述]( https://img-blog.csdnimg.cn/9b2de607f0b347449fea3bd0bfc4b21b.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5riF5qKm5riF5rKz,size_11,color_FFFFFF,t_70,g_se,x_16)

5、返回元素的排名(索引)
	ZRANK key member
举例
	ZRANK fruits 西瓜
	ZRANK fruits 番石榴
	ZRANK fruits 芒果

![在这里插入图片描述]( https://img-blog.csdnimg.cn/cbddb9cadc674d4fa7e6c34ad8e7b576.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5riF5qKm5riF5rKz,size_18,color_FFFFFF,t_70,g_se,x_16)

6、返回元素的逆序排名
	ZREVRANK key member
举例
	ZREVRANK fruits 西瓜
	ZREVRANK fruits 番石榴
	ZREVRANK fruits 芒果

![在这里插入图片描述]( https://img-blog.csdnimg.cn/02a109ce15ca47bba5a0b02a27d0f544.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5riF5qKm5riF5rKz,size_20,color_FFFFFF,t_70,g_se,x_16)

7、返回指定索引区间元素
	ZRANGE key start stop [WITHSCORES]
	如果score相同,则按照字典序lexicographical order 排列
	默认按照score从小到大,如果需要score从大到小排列,使用ZREVRANGE
举例
	ZRANGE fruits 0 2
	ZRANGE fruits -5 -4

![在这里插入图片描述]( https://img-blog.csdnimg.cn/dcd95f6858b0437f8d43bf8febb112c6.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5riF5qKm5riF5rKz,size_19,color_FFFFFF,t_70,g_se,x_16)

8、返回集合中元素个数
	ZCARD key
9、返回指定范围中元素的个数
	ZCOUNT key min max
	ZCOUNT fruits 4 7
	ZCOUNT fruits (4 7
posted @ 2021-11-16 21:04  清梦→星河  阅读(162)  评论(0)    收藏  举报