redis基本命令
<h1>redis默认有16个数据库,当前数据库默认第0个</h1>
<pre><code>select 1 #切换数据库
dbsize #查看数据库大小
keys * #查看当前数据库所有的key
flushdb #清空当前数据库
flushall #清空所有数据库
exists key #key是否存在
move key 1 #移除当前数据库中的某个key
expire key 10 #设置某个key在10秒后过期(例如session、token过期时间)
ttl key #查看key剩余时间
type key #查看当前key的类型
append key value #给当前key对应的值拼接value(如果key不存在,相当于set)
strlen key #查看key对应值的长度
incr key #key值+1(点赞数等功能可用)
decr key #key值-1
incrby/decrby key num #key+num/key-num
getrange key num1 num2 #截取key中从num1至num2的值(下标从0开始,num2=-1则取全部)
setrange key offset value #从key的offset位置开始把value替换进字符串
setex key seconds value #设置key及过期时间(秒)
setnx key value #如果不存在则设置值,存在则不设置(分布式锁中常用,乐观锁)
mset key1 value1 [key2 value2] #一次设置多个key
mget key1 [key2] #一次获取多个key
msetnx key1 value1 [key2 value2] #原子性操作,一个设置不成功则都不成功
getset key value #先获取值,再赋值,第一次执行获取的是没赋值之前的值(如果不存在值,返回nil并赋值,类似CAS)
</code></pre>
<h1>list命令</h1>
<pre><code>lpush list value #从列表头部位置给list插入一个或多个元素,返回list长度
Rpush list value1 #从列表尾部位置给list插入一个或多个元素,返回list长度(双端队列)
lpop list #移除list中头部位置的值,返回移除的元素值
rpop list #移除list中尾部位置的值
lrange list 0 -1 #截取list(从后往前取,先进后出)
lindex list index #获取list中第index值(从0开始)
llen list #获取list的size
lrem list count value #移除list中的count个value值(精确匹配)
ltrim list start end #截取list集合,从开始下标到结束下标
rpoplpush source des #移除源集合中的尾部,并添加到目标集合的头部
exists list #判断集合是否存在,返回0不存在
lset list index value #给集合的指定index位置设置值(需要该index存在,不存在则报错)
linsert list before/after value1 value #在集合的value1值前面/后面添加value
</code></pre>
<h1>set命令</h1>
<pre><code>sadd set "value" #给set添加元素
smembers set #查看set所有元素
sismember set value #判断set中是否有该元素 1 存在 0 不存在
scard set #获取set的size
srem set value #删除set中某个元素
srandmember set num #从set中随机取num个元素,不写默认1(可做抽奖)
spop set #随机删除集合中的元素
smove set1 set2 value #将集合1中的value元素移动到set2中
sdiff set1 set2 #以set1为基础数据,求两个set的差集(set2中没有的set1中的元素)
sinter set1 set2 #求交集(例如共同关注的人)
sunion set1 set2 #求并集
</code></pre>
<h1>组合命令</h1>
<p>key的设计 user:{id}:{field}</p>
<pre><code>mset user:1:name dms user:1:age 23 #设置user1的名称和年龄
mget user:1:name user:1:age
</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=3a7d62fbe22b3220dce2d57101ae996f" alt="" /></p>