"Hellp from 10.0.0.16 6379 instance" 2.1.6 TYPE
返回key所存储的值的类型
返回值:
none(key不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
10.0.0.16:6379> SET weather "sunny"
OK
10.0.0.16:6379> TYPE weather
string
10.0.0.16:6379> LPUSH book_list "programming in scala"
(error) ERR value is not an integer or out of range 2.2.3 DECRBY
DECR key decrement
将 key 中储存的数字值减去减量decrement。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
10.0.0.16:6379> SET count 100
OK
10.0.0.16:6379> DECRBY count 20
(integer) 80
10.0.0.16:6379> EXISTS pages
(integer) 0
10.0.0.16:6379> DECRBY pages 10
(integer) -10 2.2.4 GET GET key
返回 key 所关联的字符串值。
如果 key 不存在那么返回特殊值 nil 。
假如 key 储存的值不是字符串类型,返回一个错误,因为 GET 只能用于处理字符串值。
10.0.0.16:6379> GET db
(nil)
10.0.0.16:6379> SET db redis
OK
10.0.0.16:6379> GET db
"redis"
10.0.0.16:6379> DEL db
(integer) 1
10.0.0.16:6379> LPUSH db redis mongdb mysql
(integer) 3
10.0.0.16:6379> GET db
(error) WRONGTYPE Operation against a key holding the wrong kind of value 2.2.5 GETRANGE
GETRANGE key start end
返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符, -2 表示倒数第二个,以此类推。
GETRANGE 通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。
10.0.0.16:6379> SET greeting "hello, my friend"
OK
10.0.0.16:6379> SET book "long long ago..."
OK
10.0.0.16:6379> INCRBY book 20
(error) ERR value is not an integer or out of range 2.2.8 MGET
MGET key [key ...]
返回所有(一个或多个)给定 key 的值。
如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。
10.0.0.16:6379> SET redis redis.com
OK
10.0.0.16:6379> SET mongodb mongodb.org
OK
10.0.0.16:6379> MGET redis mongodb
1) "redis.com"
2) "mongodb.org"
10.0.0.16:6379> MGET redis mongodb mysql
1) "redis.com"
2) "mongodb.org"
3) (nil) 2.2.9 MSET
MSET key value [key value ...]
同时设置一个或多个 key-value 对。
如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用 MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。
MSET 是一个原子性(atomic)操作,所有给定 key 都会在同一时间内被设置,某些给定 key 被更新而另一些给定 key 没有改变的情况,不可能发生。
10.0.0.16:6379> MSET date "2012.3.30" time "11:00 a.m." weather "sunny"
OK
10.0.0.16:6379> MGET date time weather
1) "2012.3.30"
2) "11:00 a.m."
3) "sunny"
10.0.0.16:6379> SET google "google.hk"
OK
10.0.0.16:6379> MSET google "google.com"
OK
10.0.0.16:6379> GET google
"google.com" 2.2.10 STRING
STRLEN key
返回 key 所储存的字符串值的长度。
当 key 储存的不是字符串值时,返回一个错误。
10.0.0.16:6379> SET mykey "Hello World"
OK
10.0.0.16:6379> STRLEN mykey
(integer) 11
10.0.0.16:6379> STRLEN nonexisting
(integer) 0 2.3 针对Hash
命令
命令说明
HDEL
删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略
HEXISTS
查看哈希表 key 中,给定域 field 是否存在
HGET
返回哈希表 key 中给定域 field 的值
HGETALL
返回哈希表 key 中,所有的域和值。
HINCRBY
为哈希表 key 中的域 field 的值加上增量 increment
HKEYS
返回哈希表 key 中的所有域
HMGET
返回哈希表 key 中,一个或多个给定域的值
HMSET
同时将多个 field-value (域-值)对设置到哈希表 key 中
HSET
将哈希表 key 中的域 field 的值设为 value
HSETNX
将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在
HVALS
返回哈希表 key 中所有域的值 2.3.1 HDEL
HDEL key field [field ...]
删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
10.0.0.16:6379> HMSET abbr a apple b banana c cat d dog
OK
10.0.0.16:6379> HGETALL abbr
1) "a"
2) "apple"
3) "b"
4) "banana"
5) "c"
6) "cat"
7) "d"
8) "dog"
10.0.0.16:6379> HDEL abbr a
(integer) 1
10.0.0.16:6379> HDEL abbr not-exists-field
(integer) 0
10.0.0.16:6379> HDEL abbr b c
(integer) 2
10.0.0.16:6379> HGETALL abbr
1) "d"
2) "dog" 2.3.2 HEXISTS
HEXISTS key field
查看哈希表 key 中,给定域 field 是否存在。
10.0.0.16:6379> HEXISTS phone myphone
(integer) 0
10.0.0.16:6379> HSET phone myphone nokia-1110
(integer) 1
10.0.0.16:6379> HEXISTS phone myphone
(integer) 1 2.3.3 HGET
HGET key field
返回哈希表 key 中给定域 field 的值。
10.0.0.16:6379> HSET site redis redis.com
(integer) 1
10.0.0.16:6379> HGET site redis
"redis.com"
10.0.0.16:6379> HGET site mysql
(nil) 2.3.4 HGETALL
HGETALL key
返回哈希表 key 中,所有的域和值。
在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
10.0.0.16:6379> HMSET people jacak "Jack Sparrow" gump "Forrest Gump"
OK
"algorithm001" 2.4.4 LPUSH LPUSH key value [value ...]
将一个或多个值 value 插入到列表 key 的表头
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a ,这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。
如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。
当 key 存在但不是列表类型时,返回一个错误。
# 加入单个元素
redis> LPUSH languages python
2) "two" 2.4.6 RPUSH
RPUSH key value [value ...]
将一个或多个值 value 插入到列表 key 的表尾(最右边)。
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c ,得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a 、 RPUSH mylist b 、 RPUSH mylist c 。
如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。
当 key 存在但不是列表类型时,返回一个错误。
# 添加单个元素
redis> RPUSH languages c
(integer) 1
# 添加重复元素
redis> RPUSH languages c
(integer) 2
redis> LRANGE languages 0 -1 # 列表允许重复元素
1) "c"
2) "c"
# 添加多个元素
redis> RPUSH mylist a b c
(integer) 3
redis> LRANGE mylist 0 -1
1) "a"
2) "b"
3) "c" 2.5 针对SET
命令
命令说明
SADD
将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略
SCARD
返回集合 key 的基数(集合中元素的数量)
SDIFF
返回一个集合的全部成员,该集合是所有给定集合之间的差集
SISMEMBER
判断 member 元素是否集合 key 的成员
SMEMBERS
返回集合 key 中的所有成员
SMOVE
将 member 元素从 source 集合移动到 destination 集合
SREM
移除集合中的一个或多个 member 元素,不存在的 member 元素会被忽略
SUNION
返回一个集合的全部成员,该集合是所有给定集合的并集 2.5.1 SADD
SADD key member [member ...]
将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
假如 key 不存在,则创建一个只包含 member 元素作成员的集合。
当 key 不是集合类型时,返回一个错误。
# 添加单个元素
redis> SADD bbs "discuz.net"