找到 Redis 安装目录,进入 src 文件夹下,使用 ./redis-cli
进入到 Redis 命令行交互界面。
是否启动
检查 Redis 是否启动,如果返回 PONG
则表明 Redis 已经启动
获取所有配置项
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 教程