Redis常用操作命令大全

管理命令

(1) 启动Redis

>redis-server [--prot 6379]

–prot表示配置参数,不带的话按默认配置启动,也可以指定配置文件启动。

>redis-server [redis.conf]

(2) 连接服务

> redis-cli -h host -p port -a password

连接redis服务,参数可以省略。如果不写参数,默认连接的时本机的6379端口。

(3) 停止redis

> redis-cli shutdown
> kill redis-pid

这两条命令效果一样

客户端命令

(1) 查找key:KEYS pattern

127.0.0.1:6379> keys *test
1) "settest"
2) "listtest"
3) "test"
4) "hashtest"

查找所有符合给定模式的key。

匹配模式支持的通配符如下

符号含义
?匹配一个字符
*匹配任意个(包括0个)字符
[-]匹配区间内任一字符,如a[b-d]可以匹配"ab",“ac”,“ad”
\转义符,使用?可以匹配"?" 字符

(2) 判断key是否存在:EXISTS key

127.0.0.1:6379> exists test
(integer) 1

(3) 设置过期时间:EXPIRE key seconds

127.0.0.1:6379> EXPIRE test 5
(integer) 1

(4) 返回指定key的剩余生存时间:TTL key

127.0.0.1:6379> TTL test
(integer) -2

没有指定剩余时间时返回-1,key不存在时返回-2。

(7) 查询key所关联的value的类型:TYPE key

127.0.0.1:6379> TYPE settest
set

(8) 删除key:DEL key [key…]

127.0.0.1:6379> del settest
(integer) 1

可一次删除多个key

(9) 查看是否连接成功:ping [message]

127.0.0.1:6379> PING 
PONG

String字符串

(1)设值:SET Key Value [EX seconds]

127.0.0.1:6379> SET test 111
OK

设置键值。如果key不存在,则在数据库中,新添加一个,如果key键已存在,并且保存了旧值,旧值会被覆盖。

EX seconds选项表示过期的事件,单位为秒。不设置,则表示key键永不过期

(2) 获取键值:GET key

127.0.0.1:6379> GET test
"111"

获取key对应的String值

(3) 批量设值:MSET Key Value[Key Value…]

127.0.0.1:6379> MSET test1 111 test2 222 test3 333
OK

一次性设置多个Key-Value值,相当于同时调用多次SET命令。这个操作是原子的,所有的Key键都是一次性设置的。如果同时运行两个MSET来设置相同的Key键,那么操作的结果只会是MSET中后一次的结果,而不是混杂的结果。

(4) 批量获取:MSETNX Key Value [Key Value…]

127.0.0.1:6379> MGET test1 test2 test3
1) "111"
2) "222"
3) "333"

一次性获取多个Value值。相对于多次使用GET命令获取单个值,减少了网络传输的次数,提升了性能。

(5) 批量添加:MSETNX Key Value [Key Value…]

127.0.0.1:6379> MSETNX test4 444 test5 555 test6 666
(integer) 1

一次性添加多个key-value。如果任何一个Key键已经存在,那么这和操作都不会执行。

(6) 获取长度:STRLEN Key

127.0.0.1:6379> STRLEN test1
(integer) 3

获取key键对应的String的长度,如果Key键对应的不是String,则报错。如果Key键不存在,则返回0。

(7) 为Key键对应的整数Value值增加1:INCR Key

127.0.0.1:6379> INCR test1
(integer) 112

(8) 为Key对应的整数Value值减少1:DECR Key

127.0.0.1:6379> DECR test1
(integer) 111

(9) 为Key对应的整数Value值增加Increment: INCRBY Key increment

127.0.0.1:6379> INCRBY test1 7
(integer) 118

(10) 为Key对应的整数Value值减少Decrement: DECRBY Key decrement

127.0.0.1:6379> DECRBY test1 6
(integer) 112

(11) 为Key对应的浮点数增加Increment:INCRBYFLOAT Key increment

127.0.0.1:6379> set float 1.0
OK
127.0.0.1:6379> INCRBYFLOAT float 10.01
"11.01"

List列表

(1) 右推入:RPUSH Key Value [Value…]

127.0.0.1:6379> RPUSH listtest a b c d e
(integer) 5

将一个或多个Value值依次推入到列表的尾部(右端)。

(2) 左推入:LPUSH Key Value [Value…]

127.0.0.1:6379> LPUSH listtest f g h i
(integer) 9

将一个或多个Value值,依次推入到列表的头部(左端)。

(3) RPOP右弹出:RPOP key

127.0.0.1:6379> RPOP listtest
"e"

从列表的尾部(右端)获取并移除一个元素。

(4) LPOP右弹出:LPOP key

127.0.0.1:6379> LPOP listtest
"e"

从列表的头部(左端)获取并移除一个元素。

(5) 获取列表的长度:LLEN Key

127.0.0.1:6379> LLEN listtest
(integer) 7

(6) 获取列表指定位置上的元素:LINDEX Key index

127.0.0.1:6379> LINDEX listtest 2
"f"

(7) 获取指定索引范围之内的所有元素:LRANGE Key start stop

127.0.0.1:6379> LRANGE listtest 0 3
1) "h"
2) "g"
3) "f"
4) "a"

(8) 设置指定索引上的元素:LSET Key index Value

127.0.0.1:6379> LSET listtest 3 m
OK

Hash哈希表

(1) 设置字段值:HSET Key Field Value

127.0.0.1:6379> HSET hashtest name lili
(integer) 1

同时可以存放多个字段-值

127.0.0.1:6379> HSET hashtest age 20 gener male
(integer) 2

给Field字段设置Value值时,如果Field字段,之前没有设置值,那么命令返回1;如果filed字段之前已经有关联值,那么命令用新值覆盖旧值,并返回0。

(2) 获取字段-值:HGET Key Field

127.0.0.1:6379> HGET hashtest name
"lili"

返回Field字段关联的Value值。如果Filed字段没有关联Value值,那么返回nil。

(3) 检查字段是否存在:HEXISTS Key Field

127.0.0.1:6379> HGET hashtest name
"lili"

检查指定的Field字段是否存在,存在返回1,否则返回0。

(4) 删除指定的字段:HDEL Key Field [Field…]

127.0.0.1:6379> HDEL hashtest name
(integer) 1

删除哈希表中,一个或多个指定的Field字段,以及这些字段关联的值。返回被删除的Field-Value对的数量。

(5) 获取所有的Field字段:HKEYS Key

127.0.0.1:6379> HKEYS hashtest
1) "age"
2) "gener"

(6) 获取所有的Value值:HVALS Key

127.0.0.1:6379> HVALS hashtest
1) "20"
2) "male"

SET集合

(1) 添加元素:SADD Key member [member…]

127.0.0.1:6379> SADD settest user0001
(integer) 1

可以向key集合中,添加一个或多个成员。

(2) 移除元素:SREM Key member [member…]

127.0.0.1:6379> SREM settest user0001
(integer) 1

从Set集合中移除一个或多个元素。

(3) 判断某个元素:SISMEMBER Key member

127.0.0.1:6379> SISMEMBER settest user001
(integer) 0

判断member元素是否为Key集合的成员。

(4) 获取集合的成员数:SCARD Key

127.0.0.1:6379> SCARD settest
(integer) 4

(5) 获取集合中的所有成员:SMEMBERS Key

127.0.0.1:6379> SMEMBERS settest
1) "user0003"
2) "user0002"
3) "user0001"
4) "user0004"

Zset有序集合

(1) 添加成员:ZADD Key score member [score member …]

127.0.0.1:6379> ZADD score 100 stu1 95 stu2 97 stu3 
(integer) 3

向有序集合里面添加一个或多个成员。如果成员已存在,则更新成员对应的分数。

(2) 移除元素:ZREM key member [member…]

127.0.0.1:6379> ZREM score stu2
(integer) 1

从有序集合Key中移除一个或者多个成员。

(3) 取得分数:ZSCORE key member

127.0.0.1:6379> ZSCORE score stu1
"100"

从key关联的有序集合中,取得member成员的分数值。

(4) 取得成员排序:ZRANK key member

127.0.0.1:6379> ZRANK score stu3
(integer) 0

(5) 成员加分:ZINCRBY key incrememt member

127.0.0.1:6379> ZINCRBY score 2 stu3
"99"

在key对应的有序集合中,对指定成员的分数加上增量increment

(6) 区间获取:ZRANGE key min max [WITHSCORES] [LIMIT offset count ]

127.0.0.1:6379> ZRANGEBYSCORE score 97 100
1) "stu3"
2) "stu1"

从key对应的有序集合中,获取指定分数区间范围的成员。WITHSCORES 表示带上分数值返回。LIMIT选项,类似与mysql查询的limit选项,有offset和count两个参数值,表示返回的偏移量和成员数量。

(7) 获取成员数:ZCARD key

127.0.0.1:6379> ZCARD score
(integer) 2

(8) 区间计数:ZCOUNT key min max

127.0.0.1:6379> ZCOUNT score 99 100
(integer) 2

返回指定分数区间的成员数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值