这些不曾使用过的reids命令

基本命令

基本命令解释
select 数字选择数据库(默认有16个数据库)
dbsize查看数据库的大小
flushdb清空当前的数据库
flushall清空所有的数据库
tab键自动补全

一、String

命令解释
set k1 hello设置k1值为hello
get k1获取k1的值
exists k1判断k1是否存在
keys *获取所有的key
incr自增1
decr自减1
incrby view ey 10让view 自增,步长为10
decrby view 20让view自减,步长为20
getrange k1 0 5截取0~5(含0含5)范围
getrange k1 0 -1截取全部范围
mset k1 v1 k2 v2 k3 v3批量设置k1,k2,k3
mget k1 k2 k3批量获取k1,k2,k3
mset user:1:name zs user:1:age 20设置对象为json的字符串:
mget user:1:name user:1:age获取对象
设置过期时间(单位:s):setex k1 10 hello
通过ttl来查看即将到期时间ttl k1
不存在key的时候创建(如果存在则创建失败)setnx k1 hello

①基本操作:

127.0.0.1:6379> set k1 hello    #	设置k1值为hello
OK
127.0.0.1:6379> set k2 world
OK
127.0.0.1:6379> get k1       	#	获取k1的值
"hello"
127.0.0.1:6379> get k2
"world"
127.0.0.1:6379> exists k1       #	判断k1是否存在
(integer) 1
127.0.0.1:6379> exists k3
(integer) 0
127.0.0.1:6379> keys *      #	获取所有的key
1) "k2"
2) "k1"
127.0.0.1:6379> strlen k1   #	获取k1值的长度
(integer) 5

②自增自减(加步数):

127.0.0.1:6379> set view 0	    #	设置view的值为0
OK
127.0.0.1:6379> get view        #	获取view的值
"0"
127.0.0.1:6379> incr view       # 让view自增1
(integer) 1
127.0.0.1:6379> get view
"1"
127.0.0.1:6379> decr view       #	让view自减1
(integer) 0
127.0.0.1:6379> get view
"0"
127.0.0.1:6379> incrby view 10       #	让view自增,步长为10
(integer) 10
127.0.0.1:6379> get view
"10"
127.0.0.1:6379> decrby view 20       #	让view自减,步长为20
(integer) -10
127.0.0.1:6379> get view
"-10"

③字符串范围:

127.0.0.1:6379> set k1 "hello,world"  #	设置k1
OK
127.0.0.1:6379> get k1
"hello,world"
127.0.0.1:6379> getrange k1 0 5    #截取0~5(含0含5)范围
"hello,"
127.0.0.1:6379> getrange k1 0 -1   #截取全部范围
"hello,world"

④批量设置:

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3      #	批量设置k1,k2,k3
OK
127.0.0.1:6379> mget k1 k2 k3      #	批量获取k1,k2,k3
1) "v1"
2) "v2"
3) "v3"

⑤设置对象为json的字符串:

127.0.0.1:6379> mset user:1:name zs user:1:age 20
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zs"
2) "20"

⑥设置过期时间(通过ttl来查看即将到期时间):

127.0.0.1:6379> setex k1 10 hello
OK
127.0.0.1:6379> ttl k1
(integer) 6
127.0.0.1:6379> ttl k1
(integer) 2
127.0.0.1:6379> ttl k1
(integer) -2
127.0.0.1:6379> get k1
(nil)

⑦不存在key的时候创建(如果存在则创建失败):

127.0.0.1:6379> setnx k1 hello       #	设置k1的值,如果k1不存在则创建k1
(integer) 1
127.0.0.1:6379> setnx k2 world       #	设置k2的值,如果k2不存在则创建k2
(integer) 1
127.0.0.1:6379> mget k1 k2
1) "hello"
2) "world"
127.0.0.1:6379> setnx k1 hehe       #	k1已经存在,所以创建失败
(integer) 0
127.0.0.1:6379> mget k1 k2       #	k1的值并没有改变
1) "hello"
2) "world"

二、List

注意:l与r是一一对应的,有lpush就有rpush,下面都是用l来进行举例。

命令解释
lpush list one设置list中的第一个值为one
lrange list 0 -1获取所有的值(值的顺序与设置和输出时的顺序有关系)
lpop list移除第一个值
lindex list n获取下标为n的值
lrem list 2 three移除list中两个three(精确匹配)
ltrim list 0 1通过下标截取指定长度
rpoplpush list otherlist移除列表中最后个元素并移动到其他列表中
lset list 0 item将列表中的指定下标值更新(如果下标不存在则报错)
linsert list before two before在某个值之前插入(在tow之前插入before)
linsert list after two after在某个值之后插入(在tow之后插入after)

①设置并获取值

127.0.0.1:6379[1]> lpush list one   #	设置值
(integer) 1
127.0.0.1:6379[1]> lpush list two
(integer) 2
127.0.0.1:6379[1]> lpush list three
(integer) 3
127.0.0.1:6379[1]> lrange list 0 -1   # 获取所有的值(值的顺序与设置和输出时的顺序有关系) 
1) "three"
2) "two"
3) "one"

②移除值

127.0.0.1:6379[1]> lpop list
"three"
127.0.0.1:6379[1]> lrange list 0 -1
1) "two"
2) "one"

③通过下标来获取值

127.0.0.1:6379[1]> lindex list 1    #获取下标为1的值
"two"
127.0.0.1:6379[1]> lindex list 0
"three"

④移除指定个数的value(精确匹配)

127.0.0.1:6379[1]> lrange list 0 -1    #	移除之前list中包含元素
1) "three"
2) "three"
3) "three"
4) "two"
5) "one"
127.0.0.1:6379[1]> lrem list 2 three    #	移除两个three
(integer) 2
127.0.0.1:6379[1]> lrange list 0 -1
1) "three"
2) "two"

⑤通过下标截取指定长度

127.0.0.1:6379[1]> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379[1]> ltrim list 0 1
OK
127.0.0.1:6379[1]> lrange list 0 -1
1) "three"
2) "two"

⑥移除列表中最后个元素并移动到其他列表中

127.0.0.1:6379[1]> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379[1]> rpoplpush list otherlist
"one"
127.0.0.1:6379[1]> lrange otherlist 0 -1
1) "one"

⑦将列表中的指定下标值更新

127.0.0.1:6379[1]> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379[1]> lset list 0 item   #如果下标不存在则报错
OK
127.0.0.1:6379[1]> lrange list 0 -1  
1) "item"
2) "two"
3) "one"

⑧在某个值之前或之后插入

127.0.0.1:6379[1]> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379[1]> linsert list before two before   #	在tow之前插入before
(integer) 4
127.0.0.1:6379[1]> lrange list 0 -1
1) "three"
2) "before"
3) "two"
4) "one"
127.0.0.1:6379[1]> linsert list after two after    #	在two之后插入after
(integer) 5
127.0.0.1:6379[1]> lrange list 0 -1
1) "three"
2) "before"
3) "two"
4) "after"
5) "one"

三、Set(无序不重复集合)

命令解释
sadd myset “hello”添加元素
smembers myset展示所有元素
sismember myset hello断myset中的是否存在hello这个值(存在返回1,不存在返回0)
scard myset获取set集合中元素的个数
srem myset hello移除hello元素
srandmember myset随机抽取一个元素
srandmember myset 2随机抽取多个元素
spop myset随机删除一个元素
spop myset 2随机删除两个元素
smove myset myset2 hello将hello这个值移入到myset2中
sdiff key1 key2求key1、key2的差集
sinter key1 key2求key1、key2的交集
sunion key1 key2求key1、key2的并集

①增加元素

127.0.0.1:6379[2]> sadd myset "hello"    #	添加元素
(integer) 1
127.0.0.1:6379[2]> sadd myset "world"
(integer) 1
127.0.0.1:6379[2]> smembers myset        #	展示所有元素
1) "world"
2) "hello"
127.0.0.1:6379[2]> sismember myset hello  #	 判断myset中的是否存在hello这个值(存在返回1,不存在返回0)
(integer) 1
127.0.0.1:6379[2]> sismember myset he
(integer) 0

②获取set集合中元素的个数

127.0.0.1:6379[2]> scard myset   #	获取set集合中元素的个数
(integer) 2

③移除元素

127.0.0.1:6379[2]> smembers myset        #	展示所有元素
1) "world"
2) "hello"
127.0.0.1:6379[2]> srem myset hello     #	移除hello元素
(integer) 1
127.0.0.1:6379[2]> smembers myset
1) "world"

④随机抽取一个或多个元素

127.0.0.1:6379[2]> srandmember myset  #	随机抽取一个元素
"world"
127.0.0.1:6379[2]> srandmember myset
"hello"
127.0.0.1:6379[2]> srandmember myset 2   #	随机抽取多个元素
1) "world"
2) "hello"

⑤随机删除一个或多个元素

127.0.0.1:6379[2]> spop myset  #	随机删除一个元素
"world"
127.0.0.1:6379[2]> smembers myset
1) "hello"
127.0.0.1:6379[2]> spop myset 2  #	随机删除两个元素
1) "hello"

⑥将指定的值从一个集合移入到另一个集合中

127.0.0.1:6379[2]> smembers myset
1) "world"
2) "hello"
127.0.0.1:6379[2]> smove myset myset2 hello   #	将hello这个值移入到myset2中
(integer) 1
127.0.0.1:6379[2]> smembers myset2
1) "hello"
127.0.0.1:6379[2]> smembers myset
1) "world"

⑦差集、交集、并集

127.0.0.1:6379[2]> sadd key1 a b c d e f g
(integer) 7
127.0.0.1:6379[2]> sadd key2 a b c x y z
(integer) 6
127.0.0.1:6379[2]> sdiff key1 key2    #	差集
1) "f"
2) "d"
3) "g"
4) "e"
127.0.0.1:6379[2]> sinter key1 key2   #	交集
1) "c"
2) "a"
3) "b"
127.0.0.1:6379[2]> sunion key1 key2   #	并集
 1) "f"
 2) "d"
 3) "a"
 4) "b"
 5) "x"
 6) "g"
 7) "y"
 8) "e"
 9) "z"
10) "c"

四、hash

命令解释
hset myhash field1 hello设置myhash中field1的值
hget myhash field1获取myhash中field1的值
hmset myhash field2 world field3 hehe批量设置值
hmget myhash field1 field2 field3批量获取值
hgetall myhash获取全部的数据
len myhash获取myhash的字段数量
hexists myhash field1判断hash指定字段是否存在(存在返回1,不存在返回0)
hkeys myhash获得所有key
hvals myhash获得所有values
hdel myhash field1删除field1字段

①设置并获取值

127.0.0.1:6379[3]> hset myhash field1 hello  #	设置myhash中field1的值
(integer) 1
127.0.0.1:6379[3]> hget myhash field1       #	获取myhash中field1的值
"hello"

②批量设置并获取值

127.0.0.1:6379[3]> hmset myhash field2 world field3 hehe   #	批量设置值
OK
127.0.0.1:6379[3]> hmget myhash field1 field2 field3   #	批量获取值
1) "hello"
2) "world"
3) "hehe"

③获取全部的数据

127.0.0.1:6379[3]> hgetall myhash
1) "field1"
2) "hello"
3) "field2"
4) "world"
5) "field3"
6) "hehe"

④获取hash的字段数量

127.0.0.1:6379[3]> hlen myhash  #	获取myhash的字段数量
(integer) 3

⑤判断hash指定字段是否存在(存在返回1,不存在返回0)

127.0.0.1:6379[3]> hexists myhash field1
(integer) 1
127.0.0.1:6379[3]> hexists myhash field4
(integer) 0

⑥获得所有key

127.0.0.1:6379[3]> hkeys myhash
1) "field1"
2) "field2"
3) "field3"

⑦获得所有values

127.0.0.1:6379[3]> hvals myhash
1) "hello"
2) "world"
3) "hehe"

⑧删除hash中指定的key字段

127.0.0.1:6379[3]> hgetall myhash
1) "field1"
2) "hello"
3) "field2"
4) "world"
5) "field3"
6) "hehe"
127.0.0.1:6379[3]> hdel myhash field1   #	删除field1字段
(integer) 1
127.0.0.1:6379[3]> hgetall myhash
1) "field2"
2) "world"
3) "field3"
4) "hehe"

五、Zset(有序集合)

命令集合
zadd myset 1 one设置值
zadd myset 2 two 3 three批量设置值
zrange myset 0 -1获取所有的值
从小到大排序zrangebyscore salary -inf +inf withscores
从大到小排序zrevrange salary 0 -1
zcard salary获取有序集合中的个数
zcount salary 1000 3000获取指定区间的成员数量
zrem salary zs移除zs

①设置并获取值

127.0.0.1:6379[4]> zadd myset 1 one   #	设置值
(integer) 1
127.0.0.1:6379[4]> zadd myset 2 two 3 three   #	批量设置值
(integer) 2
127.0.0.1:6379[4]> zrange myset 0 -1   #	获取所有的值
1) "one"
2) "two"
3) "three"

②排序(从小到大或从大到小)

127.0.0.1:6379[4]> zadd salary 2500 zs 5000 ls 3000 ww   #	设置值
(integer) 3
127.0.0.1:6379[4]> zrangebyscore salary -inf +inf   #	根据key按照从小到大的顺序进行排列
1) "zs"
2) "ww"
3) "ls"
127.0.0.1:6379[4]> zrangebyscore salary -inf +inf withscores   #	根据key按照从小到大的顺序进行排列并且带上score
1) "zs"
2) "2500"
3) "ww"
4) "3000"
5) "ls"
6) "5000"
127.0.0.1:6379[4]> zrevrange salary 0 -1   #zrevrange 从大到小排序
1) "ls"
2) "ww"
3) "zs"

③获取有序集合中的个数

127.0.0.1:6379[4]> zcard salary
(integer) 3

④获取指定区间的成员数量

127.0.0.1:6379[4]> zcount salary 1000 3000
(integer) 2

⑤移除集合中指定的元素

127.0.0.1:6379[4]> zrange salary 0 -1 withscores
1) "zs"
2) "2500"
3) "ww"
4) "3000"
5) "ls"
6) "5000"
127.0.0.1:6379[4]> zrem salary zs   #	移除zs
(integer) 1
127.0.0.1:6379[4]> zrange salary 0 -1 withscores
1) "ww"
2) "3000"
3) "ls"
4) "5000"

楠哥-------一心想为IT行业添砖加瓦,却总是面向cv编程的程序员。
  谢谢阅读,无误点赞,有误还望评论区指正。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值