Redis 常用命令


找到 Redis 安装目录,进入 src 文件夹下,使用 ./redis-cli 进入到 Redis 命令行交互界面。

是否启动

检查 Redis 是否启动,如果返回 PONG 则表明 Redis 已经启动

1
127.0.0.1:6379>ping

获取所有配置项

1
127.0.0.1:6379>config get *

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 zset(sorted set:有序集合)。

String 操作

1
2
127.0.0.1:6379>set foo bar
127.0.0.1:6379>get foo

Hash 操作

1
2
127.0.0.1:6379>hmset student xiaoming "16" xiaohong "28"
127.0.0.1:6379>hget student xiaoming

List 操作

1
2
3
4
127.0.0.1:6379>lpush fruit apple
127.0.0.1:6379>lpush fruit orange
127.0.0.1:6379>lpush fruit banana
127.0.0.1:6379>lrange fruit 0 10

Set

1
2
3
4
127.0.0.1:6379>sadd color yellow
127.0.0.1:6379>sadd color blue
127.0.0.1:6379>sadd color red
127.0.0.1:6379>smembers color

zset(sorted set)

1
2
3
4
127.0.0.1:6379>zadd animal 0 cat
127.0.0.1:6379>zadd animal 0 dog
127.0.0.1:6379>zadd animal 0 duck
127.0.0.1:6379>zrange animal 0 100

Redis keys 命令

命令 功能 举例
del key key 存在时删除 key 127.0.0.1:6379>del aaa
dump key 序列化给定 key ,并返回被序列化的值 127.0.0.1:6379>dump color
exists key 检查给定 key 是否存在 127.0.0.1:6379>exists color
expire key 为给定 key 设置过期时间 127.0.0.1:6379>expire color
expireat key EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)
pexpire key 设置 key 的过期时间以毫秒计
pexpireat key 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
keys pattern 查找所有符合给定模式( pattern)的 key keys color*
move key db 将当前数据库的 key 移动到给定的数据库 db 当中
persist key 移除 key 的过期时间 persist fruit
pttl key 以毫秒为单位返回 key 的剩余的过期时间 pttl fruit
ttl key 以秒为单位,返回给定 key 的剩余生存时间 ttl color
randomkey 从当前数据库中随机返回一个 key randomkey
rename key newkey 修改 key 的名称 rename fruit fruits
type key 返回 key 所储存的值的类型 type fruit

字符串的更多操作命令

getrange key start end

返回 key 中字符串值的子字符

1
2
3
127.0.0.1:6379>set mykey "This is my test key"
127.0.0.1:6379>getrange mykey 0 3
127.0.0.1:6379>getrange mykey 0 -1

getset key value

将给定 key 的值设为 value ,并返回 key 的旧值(old value)

1
127.0.0.1:6379>getset mykey "hahaha,i am new"

getbit key offset

对 key 所储存的字符串值,获取指定偏移量上的位(bit)

mget key1 [key2…]

获取所有(一个或多个)给定 key 的值

1
2
3
127.0.0.1:6379>set key1 "hello"
127.0.0.1:6379>set key2 "world"
127.0.0.1:6379>mget key1 key2

setbit key offset value

对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)

setex key seconds value

将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)

1
127.0.0.1:6379>setex mykey 60 redis

setnx key value

只有在 key 不存在时设置 key 的值

1
127.0.0.1:6379>setnx job "manager"

setrange key offset value

用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始

1
2
127.0.0.1:6379>set mykey1 "hello world"
127.0.0.1:6379>setrange mykey1 6 "redis"

strlen key

返回 key 所储存的字符串值的长度

1
127.0.0.1:6379>strlen mykey

mset key value [key value…]

同时设置一个或多个 key-value 对

1
127.0.0.1:6379>mset key1 "cat" key2 "bear" key3 "panda"

msetnx key value [key value…]

同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在

1
2
127.0.0.1:6379>msetnx rmdbs "MySQL" nosql "MongoDB" key-value-store "redis"
127.0.0.1:6379>mget rmdbs nosql key-value-store

psetex key milliseconds value

这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。

incr key

将 key 中储存的数字值增一。

1
2
127.0.0.1:6379>set page_view 20
127.0.0.1:6379>incr page_view

incrby key increment

将 key 所储存的值加上给定的增量值(increment) 。

1
127.0.0.1:6379>incrby page_view 10

incrbyfloat key increment

将 key 所储存的值加上给定的浮点增量值(increment) 。

1
127.0.0.1:6379>incrbyfloat page_view 0.1

decr key

将 key 中储存的数字值减一。

1
2
127.0.0.1:6379>set failure_times 10
127.0.0.1:6379>decr failure_times

decrby key decrement

key 所储存的值减去给定的减量值(decrement) 。

1
127.0.0.1:6379>decrby failure_times 2

append key value

如果 key 已经存在并且是一个字符串, APPEND 命令将 指定value 追加到改 key 原来的值(value)的末尾。

1
2
127.0.0.1:6379>append myphone "iphone"
127.0.0.1:6379>append myphone " 6 plus"

Redis 哈希(Hash)

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

hdel key field1 [field2]

删除一个或多个哈希表字段

1
2
127.0.0.1:6379>hset fruit name "apple" price "5.8"
127.0.0.1:6379>hdel fruit price

hexists key field

查看哈希表 key 中,指定的字段是否存在。

1
127.0.0.1:6379>hexists fruit price

hget key field

获取存储在哈希表中指定字段的值。

1
127.0.0.1:6379>hget fruit price

hgetall key

获取在哈希表中指定 key 的所有字段和值

1
127.0.0.1:6379>hgetall fruit

hincrby key field increment

为哈希表 key 中的指定字段的整数值加上增量 increment 。

1
2
127.0.0.1:6379>hset myhash field 5
127.0.0.1:6379>hincrby myhash field 1

hincrbyfloat key field increment

为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

1
127.0.0.1:6379>hincrbyfloat fruit price 0.6

hkeys key

获取所有哈希表中的字段

1
127.0.0.1:6379>hkeys fruit

hlen key

获取哈希表中字段的数量

1
127.0.0.1:6379>hlen fruit

hmget key field1 [field2]

获取所有给定字段的值

1
127.0.0.1:6379>hmget fruit name price

hmset key field1 value1 [field2 value2]

同时将多个 field-value (域-值)对设置到哈希表 key 中。

1
127.0.0.1:6379>hmset fruit number 11 size big

hset key field value

将哈希表 key 中的字段 field 的值设为 value 。

1
127.0.0.1:6379>hset fruit size small

hsetnx key frild value

只有在字段 field 不存在时,设置哈希表字段的值。

1
127.0.0.1:6379>hsetnx fruit size middle

hvals key

获取哈希表中所有值

1
127.0.0.1:6379>hvals fruit

hscan key cursor [MATCH pattern] [COUNT count]

迭代哈希表中的键值对。

Redis 列表(List)

Redis 列表是简单的字符串列表,按照插入顺序排序。允许重复。

blpop key1 [key2] timeout

移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

1
127.0.0.1:6379>blpop mylist 10

brpop key1 [key2] timeout

移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

1
127.0.0.1:6379>brpop mylist 10

brpoplpush source destination timeout

从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

1
127.0.0.1:6379>brpoplpush mylist reciver 10

lindex key index

通过索引获取列表中的元素

1
127.0.0.1:6379>lindex reciver 0

linsert key before|after pivot value

在列表的元素前或者后插入元素

1
2
127.0.0.1:6379>rpush mylist "World"
127.0.0.1:6379>linsert mylist before "World" "Hello"

llen key

获取列表长度

1
127.0.0.1:6379>llen mylist

lpop key

移出并获取列表的第一个元素

1
127.0.0.1:6379>lpop mylist

lpush key value1 [value2]

将一个或多个值插入到列表头部

1
2
127.0.0.1:6379>lpush mylist "this"
127.0.0.1:6379>lpush mylist "that"

lpushx key value

将一个值插入到已存在的列表头部

1
127.0.0.1:6379>lpushx mylist "foo"

lrange key start stop

获取列表指定范围内的元素

1
127.0.0.1:6379>lrange mylist 0 -1

lrem key count value

移除列表元素

1
127.0.0.1:6379>lrem mylist 0 foo

lset key index value

通过索引设置列表元素的值

1
127.0.0.1:6379>lset mylist 0 "foo"

ltrim key start stop

对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

1
127.0.0.1:6379>ltrim mylist 1 -1

rpop key

移除并获取列表最后一个元素

1
127.0.0.1:6379>rpop mylist

rpoplpush source destination

移除列表的最后一个元素,并将该元素添加到另一个列表并返回

1
127.0.0.1:6379>rpoplpush mylist list1

rpush key value1 [value2]

在列表中添加一个或多个值

1
127.0.0.1:6379>rpush mylist "hello" "hey" "world"

rpushx key value

为已存在的列表添加值

1
127.0.0.1:6379>rpushx mylist "hahahaha"

Redis 集合(Set)

1
2
127.0.0.1:6379>
127.0.0.1:6379>

1
2
127.0.0.1:6379>
127.0.0.1:6379>

1
2
127.0.0.1:6379>
127.0.0.1:6379>

1
2
127.0.0.1:6379>
127.0.0.1:6379>

参考文档:
Redis 教程