redis命令大全

一、事务相关

MULTI 		 #开启事务
set aa  11  	#插入数据
exec			#结束事务

当执行DISCARD命令时,事务会被放弃,事务队列会被清空
二、命令
1、通用命令
rename a  a1   		#把键a重命名为a1(如果a1存在会覆盖a1)
renamex a a1      	#把键a重命名为a1(如果a1存在则修改失败)
randomkey				#随机返回一个键
dbsize						#数据库键的数量
expire a 10			   #键 a 在10秒过期
ttl 						   #查看过期时间
pexpire	a 100	   # a 在100毫秒过期
persist a				   #清楚键的过期时间

move a db2				#把键a迁移到db2数据库上
dump hello 				#源端执行把键值序列化
restore hello +上面结果   #目标端导入数据
migrate 127.0.0.1 6380 hell0|cs 0 100 copy #把本地的hello cs键迁移到6380数据库上的0号库上100秒超时(copy不删除源端数据)

select 1					#切换到数据库 1 里面
flushdb 					#清理当前数据库
flushall						#清理所有数据库

keys *						#遍历所有 * 代表所有 [] 匹配部分字符(**很可能阻塞)
scan 0						#渐进式遍历所有
hscan 0     				#遍历hase
sscan 0					#集合类型
zscan0      				#遍历有序集合类型
2、字符串类型 get
set a 1  				#插入 a 的值为 1
get a    				#获取 a 的值
setnx a 2				#如果 a 已经存在则插入失败
set a 2 xx    		   #必须存在 a 键否则修改失败(后面加xx)
setex a 10 3       #设置 a 过 10秒过期
set a 3 px 1000  #设置 a 过 1000毫米过期
mset a 1 b 2      #批量设置 a b 的值(分片集群版用不了)

get a 			     #获取a的值
mget a b  		 #批量获取值 (分片集群版用不了)

incr a 				  	 #给 a 自增 1 
decr a 					 #给 a 自减 1
incrby a 20    	    #给 a 增加 20
decrby a 10     	#给 a 减少 10
incrbyfloat b 1.1   #给 b 增加 1.1 

exists a		    	#判断 a 是否存在
append a cs		#给 a 后面的值后面追加cs字符串
strlen a                #查看 a 值的字符串长度
getset a 1 		   #插入并返回a的值
setrange a 0 b    #把 a 值的第一个字符修改为b
getrange a 0 1    #获取 a 值的前两个字符
3、hash类型

hset 键 字段

hset name a cs b 25 			  #插入 name1 字段的值 a是cs b是25
hdel name a  					     #删除name1 里面a字段
hlen name 						    #查看name里面字段的个数

hget name a						 #获取 a 的值
hmget name a b					 #获取 a b 的值
hkeys name						    #获取 name 下的所有字段(*危险如果元素个数多存在阻塞可能)
hvals name						    #获取 name 下的所有的value(*危险存在阻塞可能)
hgetall name					   #获取 name 下的所有的字段和 value的值(*危险存在阻塞可能)


hexists name a                     #判断 a 的值是否存在		
hstrlen name a	 				 #获取 a 值的长度
hincrby name a 20				 #给 a 的值增加20
hincrbyfloat name b 1.1 		 #给 b 的值增加 1.1 增加小数
4、list 列表类型
rpush cs a b c        			#从 cs 列表右(后)边插入数据
lpush cs 1 2 3 					#从 cs 列表左(前)边插入数据
linsert cs before  a  22		#在元素 a 的前面插入数据22
linsert cs after  a  33		#在元素 a 的后面插入数据33
lpop cs								#从cs列表左侧弹出元素
rpop cs							#从cs右侧弹出元素
lrem cs 2 a 				   		#删除最左边的 2(把2改成负数是从右到左,改成 0 删除所有) 个 a 
ltrim cs 0 10					    #只保留前11个元素,其他的都删除


lrange 0 -1 						#从左向右获取列表的所有数据(**数据量大慎用  0代表开始位置 -1是结束位置)
lindex cs 1 						#获取索引下标是 1 的元素
llen cs 						    	#获取cs列表长度

lset cs 0 10					    #把下标为0的元素的值修改成10
BRPOP cs:3 10				#从右侧弹出3个数据时等待10秒(0是永久等待)

lpush cs:1 a                  	#跟下面的命令连用就是生产者和消费者 生产了a放放到cs:1的队列种
brpop cs:1 0					#消费者提前等待生产者生产
5、集合set类型
sadd  test a b c				#给 test 集合内添加 a、b、c 3个元素
srem  test a				    	#删除 test 集合内的 a 元素
scard test 						#计算 test 集合内的元素个数
sismember test a				#判断 test 集合里面是否包含元素 a
srandmember test 5		#随机从 test 集合内取出5个元素
spop test 2						#随机从集合中删除2个元素

smembers test				#查询test集合所有的元素(**元素过多会阻塞)

sinter test test1 				#求集合 test 和 test1的交集(*集合较大会比较耗时)
sunion test test1 				#求集合 test 和 test1的并集(*集合较大会比较耗时)
sdiff  test test1					#求集合 test 和 test1的差集(*集合较大会比较耗时)

sinterstore test0_1 test test1	  #将集合test和test1的交集保存在test0_1中
sunionstore test0_1 test test1  #将集合test和test1的并集保存在test0_1中
sdiffstore	test0_1 test test1  	#将集合test和test1的差集保存在test0_1中 
6、有序集合
zadd user 210 cheng 220 shuai	#添加成员 cheng 和 shuai 用于排序的分数分别是210和220
zcard user									#计算user集合下的成员个数
zscore user cheng						#计算 cheng 成员的分数
zrank user cheng 						#计算 cheng 成员的排名(从左到右 正序)
zrevrank user cheng					#计算 cheng 成员的排名(从右到左 倒叙)
zrem user cheng							#删除 cheng 成员
zremrangebyscore user 0 50		#删除 0 到 50 分数
zincrby user 10 che						#给 cheng 成员的分数加10
zcount user 0 100						#查询 0 到 100 分数的成员个数

zrange user 0 3				   			#查询 0 到 3 排名的成员
zrevrange user 0 3						#查询 3 到 0 排名的成员(倒序)
zrange user 0 2 withscores   		#查询 0 到 2 排名的成员并显示分数
zrangebyscore user 0 200 			#查询0 到 200 分数的成员
zrangebyscore user 0 200 withscores	 	#查询0 到 200 分数的成员并显示分数
zrevrangebyscore user 200 0 					#查询0 到 200 分数(倒序)
zremrangebyscore user 0 50						#删除 0 到 50 分数之间的成员

ZINTERSTORE user_0_1 2 user user1 		#求 user 和 user1 两个集合的交集保存到user_0_1里面 
zunionstore user_0_1 2 user user1			#求 user 和 user1 两个集合的并集
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值