[Redis学习笔记]-Redis命令
2017-11-07 19:07
411 查看
Redis 命令
Redis 命令用于在 redis 服务上执行操作。要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。
本地客户端连接
$redis-cli redis 127.0.0.1:6379> redis 127.0.0.1:6379> PING PONG
该命令用于检测 redis 服务是否启动。
在远程服务上执行命令
$redis-cli -h 127.0.0.1 -p 6379 -a "abc123" redis 127.0.0.1:6379> redis 127.0.0.1:6379> PING PONG
key命令
key命令用于管理 redis 的键。语法
Redis 键命令的基本语法如下:COMMAND KEY_NAME
实例
127.0.0.1:6379> SET msg helloworld OK 127.0.0.1:6379> GET msg "helloworld" 127.0.0.1:6379> del msg (integer) 1
DEL key
该命令用于在 key 存在时删除 key127.0.0.1:6379> SET msg helloworld OK 127.0.0.1:6379> GET msg "helloworld" 127.0.0.1:6379> del msg (integer) 1
DUMP key
序列化给定 key ,并返回被序列化的值。127.0.0.1:6379> SET msg helloworld OK 127.0.0.1:6379> DUMP msg "\x00\nhelloworld\x06\x00'$'\x1c\xb3\xf7\bJ"
EXISTS key
检查给定 key 是否存在。127.0.0.1:6379> EXISTS msg (integer) 1
返回1,表示存在
EXPIRE key seconds
为给定 key 设置过期时间,单位秒。127.0.0.1:6379> EXPIRE msg 10 (integer) 1 127.0.0.1:6379> TTL msg (integer) 1 127.0.0.1:6379> TTL msg (integer) 0 127.0.0.1:6379> TTL msg (integer) -2 127.0.0.1:6379> GET msg (nil)
TTL用于检查指定key有效时间,返回-2负数表示过期。
EXPIREAT key timestamp
EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。127.0.0.1:6379> EXPIREAT msg 1000000 (integer) 1
PEXPIRE key milliseconds
设置 key 的过期时间以毫秒计127.0.0.1:6379> PEXPIRE msg 1000 (integer) 1 127.0.0.1:6379> PTTL msg (integer) 66 127.0.0.1:6379> PTTL msg (integer) -2
PTTL命令用于检查指定key的有效期,单位毫秒,返回-2表示已过期。
KEYS pattern
查找所有符合给定模式( pattern)的 key 。127.0.0.1:6379> SET name1 zhangsan OK 127.0.0.1:6379> set name2 lisi OK 127.0.0.1:6379> set name3 wangwu OK 127.0.0.1:6379> KEYS * 1) "name2" 2) "name1" 3) "name3" 127.0.0.1:6379> KEYS n* 1) "name2" 2) "name1" 3) "name3"
MOVE key db
将当前数据库的 key 移动到给定的数据库 db 当中。127.0.0.1:6379> KEYS * 1) "name2" 2) "name1" 3) "name3" 127.0.0.1:6379> MOVE name1 1 (integer) 1 127.0.0.1:6379> KEYS * 1) "name2" 2) "name3" 127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> KEYS * 1) "name1"
上面示例中的SELECT 指令用于选择要操作的redis db(redis默认有16个db,索引为0-15)
PERSIST key
移除 key 的过期时间,key 将持久保持。127.0.0.1:6379> PERSIST User:0 (integer) 0
PTTL key
以毫秒为单位返回 key 的剩余的过期时间,返回-1表示永久有效。127.0.0.1:6379> PTTL name3 (integer) -1
TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live),返回-1 表示永久有效。127.0.0.1:6379> TTL name3 (integer) -1
RANDOMKEY
从当前数据库中随机返回一个 key 。127.0.0.1:6379> RANDOMKEY "name3"
RENAME key newkey
修改 key 的名称,neweky 存在则覆盖127.0.0.1:6379> SET name1 zhangsan OK 127.0.0.1:6379> SET name2 lisi OK 127.0.0.1:6379> KEYS * 1) "name2" 2) "name1" 127.0.0.1:6379> GET name1 "zhangsan" 127.0.0.1:6379> GET name2 "lisi" 127.0.0.1:6379> RENAME name2 name1 OK 127.0.0.1:6379> GET name1 "lisi" 127.0.0.1:6379> GET name2 (nil)
上面的操作可以看到修改key为name2为name1后,name1被覆盖,name2则被删除掉了。
RENAMENX key newkey
仅当 newkey 不存在时,将 key 改名为 newkey 。127.0.0.1:6379> SET name1 zhangsan OK 127.0.0.1:6379> set name2 lisi OK 127.0.0.1:6379> KEYS * 1) "name2" 2) "name1" 127.0.0.1:6379> GET name1 "zhangsan" 127.0.0.1:6379> GET name2 "lisi" 127.0.0.1:6379> RENAMENX name2 name1 (integer) 0 127.0.0.1:6379> RENAMENX name2 name3 (integer) 1 127.0.0.1:6379> KEYS * 1) "name1" 2) "name3"
上面的例子可以看到,修改name2位name1时,name1已存在,则无法修改,修改为name3时,name3不存在,修改成功!
TYPE key
返回 key 所储存的值的类型。127.0.0.1:6379> SET strTest hello OK 127.0.0.1:6379> HMSET hashTest name zhangsan age 20 OK 127.0.0.1:6379> LPUSH listTest element1 (integer) 1 127.0.0.1:6379> SADD setTest element1 (integer) 1 127.0.0.1:6379> ZADD zsetTest 0 element1 (integer) 1 127.0.0.1:6379> TYPE strTest string 127.0.0.1:6379> TYPE hashTest hash 127.0.0.1:6379> TYPE listTest list 127.0.0.1:6379> TYPE setTest set 127.0.0.1:6379> TYPE zsetTest zset
Redis 字符串命令
SET key value
设置指定 key 的值127.0.0.1:6379> SET msg helloworld OK
GET key
获取指定 key 的值127.0.0.1:6379> GET msg "helloworld"
GETRANGE key start end
返回 key 中字符串值的子字符127.0.0.1:6379> GETRANGE msg 0 4 "hello"
GETSET key value
将给定 key 的值设为 value ,并返回 key 的旧值(old value)。127.0.0.1:6379> GETSET msg hellozhangsan "helloworld" 127.0.0.1:6379> GET msg "hellozhangsan"
SETBIT key offset value
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。127.0.0.1:6379> SET msg hello OK 127.0.0.1:6379> GET msg "hello" 127.0.0.1:6379> GETBIT msg 1 (integer) 1 127.0.0.1:6379> SETBIT msg 1 0 (integer) 1 127.0.0.1:6379> GETBIT msg 1 (integer) 0 127.0.0.1:6379> GET msg "(ello"
GETBIT key offset
对 key 所储存的字符串值,获取指定偏移量上的位(bit)。当 offset 比字符串值的长度大,或者 key 不存在时,返回 0 。
127.0.0.1:6379> SET msg hello OK 127.0.0.1:6379> GET msg "hello" 127.0.0.1:6379> GETBIT msg 1 (integer) 1 127.0.0.1:6379> SETBIT msg 1 0 (integer) 1 127.0.0.1:6379> GETBIT msg 1 (integer) 0 127.0.0.1:6379> GET msg "(ello"
MGET key1 [key2..]
获取所有(一个或多个)给定 key 的值。127.0.0.1:6379> SET name1 zhangsan OK 127.0.0.1:6379> SET name2 lisi OK 127.0.0.1:6379> SET name3 wang OK 127.0.0.1:6379> MGET name1 name2 name3 1) "zhangsan" 2) "lisi" 3) "wang"
SETEX key seconds value
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。127.0.0.1:6379> SETEX msg 10 helloworld
OK
127.0.0.1:6379> GET msg "helloworld"127.0.0.1:6379> TTL msg
(integer) 4
SETNX key value
只有在 key 不存在时设置 key 的值。127.0.0.1:6379> KEYS * (empty list or set) 127.0.0.1:6379> SET msg1 helloworld OK 127.0.0.1:6379> SETNX msg1 hellozhangsan (integer) 0 127.0.0.1:6379> SETNX msg2 hellozhangsan (integer) 1 127.0.0.1:6379> KEYS * 1) "msg2" 2) "msg1" 127.0.0.1:6379> GET msg1 "helloworld" 127.0.0.1:6379> GET msg2 "hellozhangsan"
SETRANGE key offset value
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。127.0.0.1:6379> set msg helloworld
OK
127.0.0.1:6379> GET msg "helloworld"127.0.0.1:6379> SETRANGE msg 6 zhangsan
(integer) 14
127.0.0.1:6379> GET msg
"hellowzhangsan"
STRLEN key
返回 key 所储存的字符串值的长度127.0.0.1:6379> SET msg helloworld OK127.0.0.1:6379> STRLEN msg
(integer) 10
MSET key value [key value …]
同时设置一个或多个 key-value 对。127.0.0.1:6379> MSET name1 zhangsan name2 lisi name3 wang OK 127.0.0.1:6379> KEYS name* 1) "name2" 2) "name1" 3) "name3"
MSETNX key value [key value …]
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。127.0.0.1:6379> MSETNX name1 zhangsan name2 lisi name3 wang (integer) 0 127.0.0.1:6379> MSETNX name4 zhangsan name5 lisi name6 wang (integer) 1 127.0.0.1:6379> KEYS name* 1) "name5" 2) "name4" 3) "name3" 4) "name2" 5) "name6" 6) "name1"
PSETEX key milliseconds value
这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。127.0.0.1:6379> PSETEX msg 12345 helloworld OK 127.0.0.1:6379> PTTL msg (integer) 6708
INCR key
将 key 中储存的数字值增一。127.0.0.1:6379> SET num 1 OK 127.0.0.1:6379> INCR num (integer) 2 127.0.0.1:6379> INCR num (integer) 3 127.0.0.1:6379> GET num "3"
DECR key
将 key 中储存的数字值减一。127.0.0.1:6379> GET num "3" 127.0.0.1:6379> DECR num (integer) 2 127.0.0.1:6379> DECR num (integer) 1 127.0.0.1:6379> GET num "1"
DECRBY key decrement
key 所储存的值减去给定的减量值(decrement) 。127.0.0.1:6379> SET num 10 OK 127.0.0.1:6379> GET num "10" 127.0.0.1:6379> DECRBY num 5 (integer) 5 127.0.0.1:6379> GET num "5"
APPEND key value
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。127.0.0.1:6379> SET msg hello OK 127.0.0.1:6379> GET msg "hello" 127.0.0.1:6379> APPEND msg world (integer) 10 127.0.0.1:6379> GET msg "helloworld"
Redis hash 命令
HDEL key field1 [field2]
删除一个或多个哈希表字段127.0.0.1:6379> HMSET user name zhagsan age 20 OK 127.0.0.1:6379> HGETALL user 1) "name" 2) "zhagsan" 3) "age" 4) "20" 127.0.0.1:6379> HDEL user age (integer) 1 127.0.0.1:6379> HGETALL user 1) "name" 2) "zhagsan"
HEXISTS key field
查看哈希表 key 中,指定的字段是否存在。127.0.0.1:6379> HEXISTS user name (integer) 1 127.0.0.1:6379> HGET user name "zhagsan"
HGET key field
获取存储在哈希表中指定字段的值。127.0.0.1:6379> HGET user name "zhagsan"
HGETALL key
获取在哈希表中指定 key 的所有字段和值127.0.0.1:6379> HGETALL user 1) "name" 2) "zhagsan" 3) "age" 4) "20"
HKEYS key
获取所有哈希表中的字段127.0.0.1:6379> HKEYS user 1) "name" 2) "age"
HLEN key
获取哈希表中字段的数量127.0.0.1:6379> HLEN user (integer) 2
HMGET key field1 [field2]
获取所有给定字段的值127.0.0.1:6379> HMGET user name age 1) "zhagsan" 2) "20"
HMSET key field1 value1 [field2 value2 ]
同时将多个 field-value (域-值)对设置到哈希表 key 中。127.0.0.1:6379> HMSET user name lisi age 30 OK 127.0.0.1:6379> HGETALL user 1) "name" 2) "lisi" 3) "age" 4) "30"
HSET key field value
将哈希表 key 中的字段 field 的值设为 value 。127.0.0.1:6379> HGETALL user 1) "name" 2) "lisi" 3) "age" 4) "30" 127.0.0.1:6379> HSET user age 20 (integer) 0 127.0.0.1:6379> HGETALL user 1) "name" 2) "lisi" 3) "age" 4) "20"
HVALS key
获取哈希表中所有值127.0.0.1:6379> HVALS user 1) "lisi" 2) "20"
Redis 列表命令
LINDEX key index
通过索引获取列表中的元素127.0.0.1:6379> LRANGE names1 0 5 1) "lisi" 2) "zhaoliu" 3) "wang" 127.0.0.1:6379> LINDEX names1 1 "zhaoliu"
LLEN key
获取列表长度127.0.0.1:6379> LLEN names (integer) 3
LPOP key
移出并获取列表的第一个元素127.0.0.1:6379> LPOP names "wang" 127.0.0.1:6379> LLEN names (integer) 2
LPUSH key value1 [value2]
将一个或多个值插入到列表头部127.0.0.1:6379> LPUSH names zhangsan lisi wang (integer) 3
LPUSHX key value
将一个值插入到已存在的列表头部127.0.0.1:6379> LPUSHX names zhaoliu (integer) 3
LRANGE key start stop
获取列表指定范围内的元素127.0.0.1:6379> LRANGE names 0 5 1) "zhaoliu" 2) "lisi" 3) "zhangsan"
LREM key count value
移除列表元素
LSET key index value
通过索引设置列表元素的值127.0.0.1:6379> LRANGE names1 0 5 1) "lisi" 2) "zhangsan" 3) "wang" 127.0.0.1:6379> LSET names1 1 zhaoliu OK 127.0.0.1:6379> LRANGE names1 0 5 1) "lisi" 2) "zhaoliu" 3) "wang"
LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。127.0.0.1:6379> LRANGE names2 0 5 1) "zhangsan" 2) "xiaoming" 3) "xiaobai" 4) "xiaohei" 127.0.0.1:6379> LTRIM names2 3 5 OK 127.0.0.1:6379> LRANGE names2 0 5 1) "xiaohei"
RPOP key
移除并获取列表最后一个元素127.0.0.1:6379> RPOP names1 "lisi"
RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回127.0.0.1:6379> LRANGE names1 0 5 1) "wang" 2) "lisi" 3) "zhangsan" 127.0.0.1:6379> LRANGE names2 0 5 1) "xiaoming" 2) "xiaobai" 3) "xiaohei" 127.0.0.1:6379> RPOPLPUSH names1 names2 "zhangsan" 127.0.0.1:6379> LRANGE names1 0 5 1) "wang" 2) "lisi" 127.0.0.1:6379> LRANGE names2 0 5 1) "zhangsan" 2) "xiaoming" 3) "xiaobai" 4) "xiaohei"
RPUSH key value1 [value2]
在列表中添加一个或多个值127.0.0.1:6379> RPUSH names xiaoming xiaobai (integer) 6
RPUSHX key value
为已存在的列表添加值127.0.0.1:6379> RPUSHX names wangwu
(integer) 4
127.0.0.1:6379> LRANGE names 0 5 1) "zhaoliu" 2) "lisi" 3) "zhangsan"
4) "wangwu"
Redis 集合命令
SADD key member1 [member2]
向集合添加一个或多个成员127.0.0.1:6379> SADD color red blue green (integer) 3
SCARD key
获取集合的成员数127.0.0.1:6379> SCARD color (integer) 3
SDIFF key1 [key2]
返回给定所有集合的差集127.0.0.1:6379> SDIFF color1 1) "red" 2) "green" 3) "blue" 127.0.0.1:6379> SDIFF color2 1) "red" 2) "orange" 3) "yellow" 127.0.0.1:6379> SDIFF color1 color2 1) "green" 2) "blue"
SINTER key1 [key2]
返回给定所有集合的交集127.0.0.1:6379> SINTER color1 1) "red" 2) "green" 3) "blue" 127.0.0.1:6379> SINTER color2 1) "orange" 2) "red" 3) "yellow" 127.0.0.1:6379> SINTER color1 color2 1) "red"
SISMEMBER key member
判断 member 元素是否是集合 key 的成员,如果是返回1,反之0127.0.0.1:6379> SISMEMBER color1 red (integer) 1 127.0.0.1:6379> SISMEMBER color1 yellow (integer) 0
SMEMBERS key
返回集合中的所有成员127.0.0.1:6379> SMEMBERS color1 1) "red" 2) "green" 3) "blue"
SMOVE source destination member
将 member 元素从 source 集合移动到 destination 集合127.0.0.1:6379> SMOVE color1 color2 blue (integer) 1 127.0.0.1:6379> SMEMBERS color1 1) "red" 2) "green" 127.0.0.1:6379> SMEMBERS color2 1) "orange" 2) "red" 3) "yellow" 4) "blue"
SPOP key
移除并返回集合中的一个随机元素127.0.0.1:6379> SPOP color1 "red"
SRANDMEMBER key [count]
返回集合中一个或多个随机数127.0.0.1:6379> SRANDMEMBER color2 2 1) "red" 2) "orange"
SREM key member1 [member2]
移除集合中一个或多个成员127.0.0.1:6379> SMEMBERS color2 1) "orange" 2) "red" 3) "yellow" 4) "blue" 127.0.0.1:6379> SREM color2 red blue (integer) 2 127.0.0.1:6379> SMEMBERS color2 1) "orange" 2) "yellow"
SUNION key1 [key2]
返回所有给定集合的并集127.0.0.1:6379> SMEMBERS color1 1) "green" 127.0.0.1:6379> SMEMBERS color2 1) "orange" 2) "yellow" 127.0.0.1:6379> SUNION color1 color2 1) "orange" 2) "yellow" 3) "green"
Redis 有序集合命令
ZADD key score1 member1 [score2 member2]
向有序集合添加一个或多个成员,或者更新已存在成员的分数127.0.0.1:6379> ZADD color 0 red 0 blue 0 green (integer) 3
ZCARD key
获取有序集合的成员数127.0.0.1:6379> ZCARD color (integer) 3
ZCOUNT key min max
计算在有序集合中指定区间分数的成员数127.0.0.1:6379> ZCOUNT color 0 2 (integer) 3
ZINCRBY key increment member
有序集合中对指定成员的分数加上增量 increment127.0.0.1:6379> ZINCRBY color 1 red "1"
ZLEXCOUNT key min max
在有序集合中计算指定字典区间内成员数量127.0.0.1:6379> ZLEXCOUNT color - + (integer) 3
ZRANGE key start stop [WITHSCORES]
通过索引区间返回有序集合成指定区间内的成员127.0.0.1:6379> ZRANGE color 0 3 1) "blue" 2) "green" 3) "red" 127.0.0.1:6379> ZRANGE color 0 3 withscores 1) "blue" 2) "0" 3) "green" 4) "0" 5) "red" 6) "0"
ZRANGEBYLEX key min max [LIMIT offset count]
通过字典区间返回有序集合的成员127.0.0.1:6379> ZRANGEBYLEX color - + limit 0 2 1) "blue" 2) "green"
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
通过分数返回有序集合指定区间内的成员127.0.0.1:6379> ZRANGEBYSCORE color 0 7 1) "blue" 2) "green" 3) "red" 127.0.0.1:6379> ZRANGEBYSCORE color 0 7 withscores 1) "blue" 2) "0" 3) "green" 4) "0" 5) "red" 6) "0" 127.0.0.1:6379> ZRANGEBYSCORE color 0 7 withscores limit 0 2 1) "blue" 2) "0" 3) "green" 4) "0"
ZRANK key member
返回有序集合中指定成员的索引127.0.0.1:6379> ZRANK color green (integer) 1
ZREM key member [member …]
移除有序集合中的一个或多个成员
127.0.0.1:6379> ZREM color blue (integer) 1
ZREMRANGEBYLEX key min max
移除有序集合中给定的字典区间的所有成员127.0.0.1:6379> ZREMRANGEBYLEX color - + (integer) 2
ZREMRANGEBYRANK key start stop
移除有序集合中给定的排名区间的所有成员127.0.0.1:6379> ZREMRANGEBYRANK color 1 3 (integer) 0
ZREMRANGEBYSCORE key min max
移除有序集合中给定的分数区间的所有成员127.0.0.1:6379> ZREMRANGEBYSCORE color 0 2 (integer) 3
ZREVRANGE key start stop [WITHSCORES]
返回有序集中指定区间内的成员,通过索引,分数从高到底127.0.0.1:6379> ZREVRANGE color 0 2 1) "red" 2) "green" 3) "blue"
ZREVRANGEBYSCORE key max min [WITHSCORES]
返回有序集中指定分数区间内的成员,分数从高到低排序ZREVRANK key member
返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序127.0.0.1:6379> ZREVRANK color blue (integer) 2
ZSCORE key member
返回有序集中,成员的分数值127.0.0.1:6379> ZSCORE color blue "0"
ZSCAN key cursor [MATCH pattern] [COUNT count]
迭代有序集合中的元素(包括元素成员和元素分值)127.0.0.1:6379> ZSCAN color 0 1) "0" 2) 1) "blue" 2) "0" 3) "green" 4) "0" 5) "red" 6) "1" 127.0.0.1:6379> ZSCAN color 0 Match b* 1) "0" 2) 1) "blue" 2) "0" 127.0.0.1:6379> ZSCAN color 0 Match b* Count 1 1) "0" 2) 1) "blue" 2) "0"
相关文章推荐
- Redis学习笔记~常用命令总结
- redis学习笔记2--命令返回值
- Redis学习笔记2--Redis数据类型及相关命令
- Redis 学习笔记(三)之散列类型命令
- Redis学习笔记(3) Redis基础类型及命令之二
- Redis学习笔记(八)事务 和 连接相关命令
- Redis 学习笔记(二)之字符串类型命令
- Redis学习笔记(六) 基本命令:List操作
- Redis 常用命令学习笔记
- redis命令,学习笔记
- Redis学习笔记--常用命令
- Redis 学习笔记(三)之散列类型命令
- Redis学习笔记--info命令结果解析
- redis命令学习笔记
- Redis 学习笔记(二)之字符串类型命令
- Redis学习笔记二:Redis的常用操作命令
- redis学习笔记5,键值相关命令+Redis高级使用特性
- redis学习笔记五之基础命令—有序集合
- Redis命令学习笔记
- 【JAVAWEB学习笔记】27_Redis:在Linux上的安装、Jedis和常用命令