Redis-命令指南

作者:聂勇 欢迎转载,请保留作者信息并说明文章来源!

Redis是一个基于BSD协议,开源且免费的Key=>Value存储产品(NoSQL),与Memcached相比,功能更加丰富:
1、支持List, Set, Hash等集合的操作。
2、支持数据持久化(默认开启)。
3、支持事务。
4、支持发布/订阅功能。
5、支持执行Lua脚本。
6、另外,还有人把它当作队列使用。如:logstash就默认把redis当作队列服务器。

命令概述

根据命令的作用对象,把它们分类成:通用类、字符串操作类、数字操作类、集合操作类、列表操作类、哈希操作类、发布/订阅操作类、连接操作类、服务管理类。
把常用的Redis命令分类整理成思维导图,如下:
Redis指令

命令行连接方式

1、可以使用telnet的方式远程连接Redis:

1
telnet 192.168.56.102 6379

Trying 192.168.56.102…
Connected to 192.168.56.102 (192.168.56.102).
Escape character is ‘^]’.

2、如果是在Redis安装的服务器上,可以直接执行bin目录下的redis-cli应用:

1
./redis-cli

127.0.0.1:6379>

字符串(String)命令使用示例

1、将字符串Hello, Redis!存储到指定的Key(key-hello)。

1
set key-hello "Hello, Redis!"

+OK

2、获取Key(key-hello)中存储的值。

1
get key-hello

$13
Hello, Redis!

3、将字符串This is an append string追加到Key(key-hello)中存储的值的末尾。

1
append key-hello "This is an append string"

:37

1
get key-hello

$37
Hello, Redis!This is an append string

4、获取Key(key-hello)中存储的值(字符串)的长度。

1
strlen key-hello

:37

数字(Number)命令使用示例

1、将整数1存储到指定的Key(key-int)。

1
set key-int 1

+OK

2、将Key(key-int)中的值加1。

1
incr key-int

:2

3、将Key(key-int)中的值加7。

1
incrby key-int 7

:9

4、将Key(key-int)中的值减1。

1
decr key-int

:8

5、将Key(key-int)中的值减7。

1
decrby key-int 7

:1

集合(Set)命令使用示例

1、将四个元素存储到Key(key-set)中。

1
sadd key-set element-1 element2 hello redis

:4

2、获取Key(key-set)中存储的元素数量。

1
scard key-set

:4

3、获取Key(key-set)中存储的元素列表。

1
smembers key-set

*4
$5
hello
$5
redis
$8
element2
$9
element-1

4、从Key(key-set)中删除并获取其中的一个元素。

1
spop key-set

$8
element2

5、从Key(key-set)中删除指定的元素。

1
srem key-set hello

:1

1
smembers key-set

*2
$5
redis
$9
element-1

列表(List)命令使用示例

1、将5个元素存储到Key(key-list)中。

1
lpush key-list abc hello go redis "this is a string"

:5

key-list

2、将索引编号为1的元素替换成字符串insert-1。

1
lset key-list 1 insert-1

+OK

插入数据到key-list后
1
llen key-list

:5

3、从队列左边出队一个元素。

1
lpop key-list

$16
this is a string

左边出列一个数据后的key-list

4、从队列右边出队一个元素。

1
rpop key-list

$3
abc

右边出列一个数据后的key-list

5、从队列右边再出队一个元素。

1
rpop key-list

$5
hello

右边再出列一个数据后的key-list

6、从队列左边再出队一个元素。

1
lpop key-list

$8
insert-1

左边再出列一个数据后的key-list

# 哈希(Hash)命令使用示例

1、将1个元素存储到哈希列表中。

1
hset key-hash field-1 one

:1

哈希列表

2、将4个元素批量存储到哈希列表中。

1
hmset key-hash field-2 two field-3 three field-4 four field-5 five

+OK

哈希列表

3、获取哈希列表中的key列表。

1
hkeys key-hash

*5
$7
field-1
$7
field-2
$7
field-3
$7
field-4
$7
field-5

4、获取哈希列表中的值列表。

1
hvals key-hash

*5
$3
one
$3
two
$5
three
$4
four
$4
five

5、获取哈希列表中指定key的值。

1
hget key-hash field-3

$5
three

6、批量获取哈希列表中指定key的值。

1
hmget key-hash field-1 field-5

*2
$3
one
$4
five

7、获取哈希列表中所有的键值对。

1
hgetall key-hash

*10
$7
field-1
$3
one
$7
field-2
$3
two
$7
field-3
$5
three
$7
field-4
$4
four
$7
field-5
$4
five

8、获取哈希列表中键值对的数量。

1
hlen key-hash

:5

9、删除哈希列表中指定key的键值对。

1
hdel key-hash field-4 field-5

:2

哈希列表

发布/订阅(Publish/Subscribe)命令使用示例

1、在一个客户端用subscribe命令订阅渠道ch-one。
2、另一个客户端用publish命令连续向渠道ch-one发布了三条消息。
3、订阅了ch-one渠道的客户端接收到三条消息。

发布 订阅
发布 订阅

服务管理(Server)命令使用示例

1、查看连接到Redis的客户端信息。

1
client list

$718
addr=127.0.0.1:40165 fd=6 name= age=24524 idle=24477 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=info
addr=127.0.0.1:60394 fd=5 name= age=3410 idle=1543 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=publish
addr=127.0.0.1:53840 fd=7 name= age=1653 idle=641 flags=N db=0 sub=1 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=subscribe
addr=127.0.0.1:47668 fd=8 name= age=64 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
addr=192.168.56.101:2992 fd=9 name= age=12 idle=8 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=get