Redis应用命令总结

2019/04/10 10:10
阅读数 0

1)String操作

6379> set k1 v1			  #设定值
6379> get k1				  #获取值
6379> mset k2 v2 k3 v3		#批量设定值
6379> mget k2 k3			  #批量获取值
6379> setnx k4 v4			#为不存在的键设定值
6379> setex book 60 110		#原子性操作、同一时间可完成设定值与设置过期时间
6379> msetnx k1 v1 k2 v2	    #原子性操作、批量为不存在的键设定值
6379> getset k1 v1			#如果k1键不存在、相当于将k1键的值设置为v1
6379> append k1 _12138		#尾部追加数据、如果k1的值为v1、那么执行之后值就变为k1_12138
6379> substr k1 3 7			#查看3-7之间的数据、即显示为12138
6379> incr num				#递增num的值、如果值为1、那么执行之后num的值为2
6379> decr num			  #递减num的值、如果值为2、那么执行之后num的值为1
6379> incrby num 5			#按量递增num的值、如果值为1、那么执行之后num的值为6
6379> decrby num 5			#按量递减num的值、如果值为6、那么执行之后num的值为1
6379> incrbyfloat num 6.6	#递增浮点数、如果值为1、那么执行之后值为7.6
6379> incrbyfloat num -6.6	#递减浮点数、如果值为7.6、那么执行之后值为1
6379> strlen k1				#获取字符串的长度
6379> setrange book 3 456	#相当于替换、如果book的值为123abc、从第3位开始替换为456
6379> getrange book 0 2		#返回字符串中的指定部分、执行之后返回的为123、-1为返回所有

2)Hash操作

6379> hset info book 110			  #设定值
6379> hget info book				  #获取值
6379> hmset info k1 v1 k2 v2		  #批量设定值
6379> hmget info k1 k2				#批量获取值
6379> hgetall info					#获取info键中的所有值
6379> hsetnx info k4 v4				#给不存在的域设定值、存在则放弃执行
6379> hexists info k1				#检查k1这个域是否存于info键中
6379> hdel info k1					#删除info键中名为k1的域、如需删除多个、那就空格分隔
6379> hlen info						#返回info键中域的数量
6379> hkeys info					  #返回info键中所有的域
6379> hvals info					  #返回域中所有的值
6379> hstrlen info k1				#返回指定域中字符串的长度
6379> hincrby info book 4			#按量递增book这个域的值、如果初始值为136、那么执行之后值为140
6379> hincrby info book -4			#按量递减book这个域的值、如果初始值为140、那么执行之后值为136
6379> hincrbyfloat info book 1.1	  #递增浮点数、如果book的初始值为13、那么执行之后值为14.1
6379> hincrbyfloat info book -1.1	#递减浮点数、如果book的初始值为14.1、那么执行之后值为13

3)List操作

6379> lpush k1 a1 a2			  #创建列表、并在头部添加元素
6379> rpush k1 a3				#创建列表、并在尾部添加元素
6379> lpushx k1 a4				#将元素插入列表的头部、如果列表不在、则放弃执行
6379> rpushx k1 a5				#将元素插入列表的尾部、如果列表不在、则放弃执行
6379> lrange k1 0 3				#返回指定区间的元素、从0开始算、-1表示最后一个元素、以此类推
6379> linsert k1 before a1 a0	#在某个值前面插入数据、比如在a1这个值的前面插入a0这个值
6379> linsert k1 after a8 a9	  #在某个值后面插入数据、比如在a8这个值的后面插入a9这个值
6379> lset k1 2 mds				#相当于替换、从0开始算、比如将第三行的数据替换为mds
6379> ltrim k1 0 4				#保留指定的前5个元素、从0开始算、没有指定的将被删除
6379> llen k1					#返回k1这个列表中元素的个数
6379> lindex k1 0				#获取k1这个列表中的第一个值、从0开始算
6379> lpop k1					#移除k1这个列表的头部元素
6379> rpop k1					#移除k1这个列表的尾部元素
6379> blpop k1 15				#从头部开始移除元素、返回的值包括所属列表与被移除的元素、15为超时时间
6379> brpop k1 15				#从尾部开始移除元素、返回的值包括所属列表与被移除的元素、15为超时时间
6379> rpoplpush k1 k2			#将k1的尾部元素转移到k2
6379> brpoplpush k1 k2 15		#将k1的尾部元素转移到k2、每执行一次、就从尾部转移一次、15为超时时间
6379> lrem k1 2 23				#移除从首部到尾部的2个名为23的元素
6379> lrem k1 -1 11				#移除从尾部到首部的第一个名为11的元素

注意事项:

1、brpoplpush为rpoplpush的阻塞版本:当指定列表为空时、连接将被brpoplpush阻塞、直到等待超时或执行lpush与rpush命令为止
2、blpop为lpop的阻塞版本:当指定列表内没有任何元素可移除的时、连接将被blpop命令阻塞、直到等待超时或发现可移除元素为止
3、brpop为rpop的阻塞版本:当指定列表内没有任何元素可移除的时、连接将被brpop命令阻塞、直到等待超时或发现可移除元素为止

4)Set操作

6379> sadd k1 a1 a2			#添加元素、元素可有多个
6379> smembers k1			#获取k1集合中的所有元素
6379> scard k1				#获取k1集合中元素的个数
6379> sismember k1 a1		#判断a1这个元素、是否存在k1集合中
6379> spop k1 3				#在k1集合中随机返回3个元素、并将其移除
6379> srandmember k1 3		#在k1集合中随机返回3个元素、但不将其移除
6379> srem k1 a1 a2			#移除k1集合中名为a1和a2两个元素、值可一个、也可多个
6379> smove k1 k2 a1		   #将k1集合中名为a1的元素、移动到k2集合中去、一次一个
6379> sinter k1 k2			#获取k1与k2中相同的数据、并返回
6379> sinterstore k3 k1 k2	#获取k1与k2中相同的数据、返回之后并将其保存到k3集合中
6379> sunion k1 k2			#获取k1与k2中不同的数据、并返回
6379> sunionstore k3 k1 k2	#获取k1与k2中不同的数据、返回之后并将其保存到k3集合中
6379> sdiff k1 k2			#获取在k1而不在k2中的数据、并返回
6379> sdiffstore k3 k1 k2	#获取在k1而不在k2中的数据、返回之后并将其保存到k3集合中

5)Zet操作

6379> zadd info 10 www.mds.com			#添加元素、10为优先级、可设置多对
6379> zrange info 0 -1					#获取集合中的所有元素、按优先级从小到大显示
6379> zrem info www.mds.com				#删除集合中的元素、值可多个
6379> zrange info 0 -1 WITHSCORES		#获取集合中所有元素的同时也显示优先级
6379> zrevrange info 0 -1				#按照优先级进行逆向排序、与zrange相反
6379> zscore info www.mds.com			#获取集合中某个元素的优先级
6379> zrank info www.mds.com			  #获取元素在集合中的排名、最小的排名为0
6379> zrevrank info www.mds.com			#获取元素在集合中的倒序排名、即从大到小
6379> zincrby info 60 www.mds.com		#为集合中某个元素增加优先级、越大越往后
6379> zcard info						  #获取集合中元素的个数
6379> zcount info 20 60					#按照优先级获取区间内元素的个数
6379> zrangebyscore info 20 60			#按照优先级获取区间内元素的值
6379> zrevrangebyscore info +inf -inf	#从大到小逆向排序所有元素
6379> zrevrangebyscore info 60 20		#从大到小逆向排序优先级介于60-20之间的元素
6379> zremrangebyrank info 0 2			#删除区间内指定的元素、从0开始算
6379> zremrangebyscore info 25 60		#按照优先级删除区间内指定的元素
6379> zinterstore info3 2 info1 info2  #将info1与2集合中相同集合名的优先级进行相加、然后保存到info3中、2为集合数量
6379> zunionstore info3 2 info1 info2  #将info1与2集合中相同集合名的优先级进行相加、而不同的集合名则不相加、但仍然都保存到info3中

注意事项:

1、aggregate min:获取info1与info2中优先级最小的元素保存到info3中
2、aggregate max:获取info1与info2中优先级最大的元素保存到info3中
4、aggregate sum:对info1与info2中的优先级进行求和、然后保存到info3中、默认使用此方式

【一个人,一个地方,一首歌,一段回忆】

原文出处:https://www.cnblogs.com/lvthinks/p/12336457.html

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部