0%

Redis常用命令总结

一、字符串

以实际输入的命令为例

1.建立键值对

1
set bar 1

建立了一个键值对,键名叫bar,键值是1

2.判断键是否存在

1
exists bar

判断键名bar是否存在 若存在则返回1,不存在返回0

3.删除键

1
del bar

删除键名为bar的键值对 若删除成功则返回删除的个数,删除失败(不存在)则返回0

4.查看所有的键

1
keys *

5.获得键值的数据类型

1
type foo

获得键名为foo的键值类型 返回值类型可能有 string(字符串),hash(散列),list(列表),set(集合),zset(有序集合)

6.获得键对应的值

1
get foo

获得键名为foo的键值

7.自增

1
incr foo

创建一个foo的键值对,并自增为1 但是运行type foo 时,显示为string 增加特定数值

1
incrby foo 3

使foo增加3

8.自减

1
decr foo

减小1个数值

1
decrby foo 3

减小3个数值

9.增加指定浮点数

1
incrbyfloat bar 2.5

bar增加指定的浮点数2.5

10.向尾部追加值

1
append bar hehe
1
append bar " world"

如果是要追加带空格的内容,则要用空格引起来 返回值是一个数字,代表现在键值的长度

11.获取字符串长度

1
strlen bar

返回值是一个数字,代表现在的字符串长度

12.同时设置多个键值对

1
mset key1 value1 key2 value2 key3 value3

13.同时获得多个键值对应内容

1
mget key1 key2
1
2
1)value1
2)value2

二、散列

1.赋值和取值

1
hset key field value

例如:

1
hset car price 500
1
hget car price

同时赋值多个字段的值

1
hmset car price 500 name BMW
1
hmget car price name

2.判断字段是否存在

1
hexists car price

3.只获得字段名

1
hkeys car

4.只获得字段值

1
hvals car

5.获得字段数量

1
hlen key

三、列表

1.向两边添加元素

1
lpush group 1
1
rpush group 2

结果

1
2
1) "1" 
2) "2"

lpush 是向左边添加元素,rpush 是向右边添加元素。

2. 从两边弹出元素

1
lpop group
1
rpop group

lpop 是从左边弹出元素, rpop 是从右边弹出元素,显示元素的值

3.获取列表中元素的个数

1
llen group

4.获得列表片段

1
lrange group 0 3
1
lrange group -2 -1

其中 -2 -1 为负索引,这个也是可行的。-2代表倒数第二个元素,-1代表倒数第一个元素。 特殊地:获取所有元素则可以这么写

1
lrange group 0 -1

5.删除列表中指定的值

1
lrem group count value

当count > 0,它会从左边开始删除前count个值为value的元素。 当count < 0,它会从右边开始删除前|count|个值为value的元素。 但count = 0,它会删除所有值为value的元素。

6.获得索引处的值

1
lindex group 0

获得索引0位置的元素值

7.设置索引处的值

1
lset group 1 5

将 group 索引 1 处的值改为 5

8.只保留特定的片段

1
ltrim group 0 1

只保留索引0到1的值,其余的删除

9.向列表中插入元素

1
linsert group after 2 5

从左边开始查询,找到数字2,在后面插入数字5 insert group before 2 5 从左边开始查询,找到数字2,在前面插入数字5

四、集合

1.添加元素

1
sadd hello 2 4 5

向集合中添加2 4 5元素,返回值是成功加入的元素数量

2.删除元素

srem hello 4 5 从集合中删除4 5,返回值是成功删除的元素数量

3.获得集合中所有元素

1
smembers hello

4.判断元素是否在集合中

sismember hello 2 判断2是否在集合hello中 存在返回1,不存在返回0

5.集合的运算

差集

1
sdiff setA setB

返回值是集合,返回的是存在集合A中但是不存在B中的元素集合

交集

1
sinter setA setB

返回值是setA和setB的交集

并集

1
sunion setA setB

6.获得集合大小

1
scard setA

返回值是数目

7.随机获得集合中的数字

1
srandmember setA

五、有序集合

1.增加元素

增加时需要指定元素的分数和元素的名称

1
zadd score 89 Tom 45 Amy

分数不仅可以是整数,还可以是浮点数

1
zadd score 2.3 Mike
1
zadd score +inf Bob

2.获得元素分数

1
zscore score Tom

如果不存在,返回(nil)

3.获得排名在某个范围内的元素列表

1
zrange score 0 2

带分数显示

1
zrange score 0 -1 withscores

4.获得指定分数范围的元素

1
zrangebyscore score 45 80

获得45分到80分的元素,闭区间 如果不想是闭区间,则可以在索引前面加上(

1
zrangebyscore score (45 80

5.取某几个值

zrangebyscore score (45 80 limit 0 3 取(45,80]之间的元素,从第一个开始,取3个

6.增加某个元素分数

1
zincrby score 5 Tom

给某个元素加5分

1
zincrby score -2 Tom

给某个元素减2分

7.给某个元素重新赋值分数

同样用zadd命令

1
zadd score 22 Tom

8.获得集合中元素的数量

1
zcard score

9.获得指定分数范围内元素个数

1
zcount score 79 90

10.删除一个或者多个元素

1
zrem score Tom

11.按照分数删除元素

1
zremrangebyrank score 0 1

它先会把它按照分数从小到大排列,然后删除索引位置的元素

12.按照分数删除元素

1
zremrangebyscore score 28 99

他会删除指定分数范围内的元素

13.获得元素排名

1
zrank score Tom

获得按照分数从小到大排列后,Tom的索引位置 反向排名

1
zrevrank score Tom

返回从大到小排列后,Tom的索引位置