`
- 浏览:
1117410 次
- 性别:
- 来自:
北京
-
key
del
DEL key [key ...]
删除指定的一个或多个key。不存在的key会被忽略。
被删除key的数量
dump
dump key
序列化给定的key,并返回被序列化的值,使用RESTORE命令可以将这个值反序列化为Redis键。
如果key不存在,那么返回nil,否则,返回序列化之后的值。
exists
exists key
检查给定key是否存在
若key存在,返回1,否则返回0
expire
expire key seconds
为给定的key设置生存时间,当key过期时(生存时间为0),它会被自动删除。
设置成功返回1。当key不存在或者不能为key设置生存时间时,返回0.
expireat
expireat key timestamp
expireat的作用和expire类似,都用于为key设置生存时间。不同在于expireat命令接受的时间参数是UNIX时间戳(unix timestamp)。
如果生存时间设置成功,返回1。当key不存在或没办法设置生存时间。
keys
keys pattern
查找所有符合盖顶模式pattern的key。特殊符号用\隔开。
符合给定模式的key列表
magrate
MIGRATE host port key destination-db timeout [COPY] [REPLACE]
将key原子性地从当前实例传送到目标实例的指定数据库上,一旦传送成功,key保证会出现在目标实例上,而当前实例上的key会被删除。
迁移成功时返回OK,否则返回相应的错误。
move
MOVE key db
将当前数据库的key移动到给定的数据库db当中。如果当前的数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定key,或者key不存在于当前数据库,那么MOVE没有任何效果。
移动成功返回1,失败则返回0.
object
OBJECT sucommand [arguments[arguments]]
OBJECT 命令允许从内部查看给定key的Redis对象,它通常用在除错(debugging)或者了解为了节省空间而对key使用特殊编码的情况。当将Redis用作缓存程序时,也可以通过OBJECT命令中的信息,决定key的驱逐策略
返回值:REFCOUNT和IDLETIME返回数字。 ENCODING返回响应的编码类型。
persist
PERSIST key
移除给定key的生存时间,将这个key从“易失的”(带生存时间的key)转换成“持久的”(不带生存时间、永不过期的key)。
当生产时间移除成功时,返回1 如果key不存在或key没有设置生存时间,返回0
pexpire
PERXPIRE key milliseconds
这个命令和EXPIRE命令的作用类似,但是它以毫秒为单位设置key的生存时间,而不像EXPIPE命令那样,以秒为单位。
设置成功,返回1 key不存在或设置失败,返回0
pexpireat
PEXPIREAT key milliseconds-timestamp
这个命令和EXPIREAT命令类似,但它以毫秒为单位设置key的过期unix时间戳,而不是像EXPIPREAT那样,以秒为单位。
如果生存时间设置成功,返回1 当key不存在或没办法设置生存时间时,返回0
pttl
PTTl key
类似于TTL命令,以毫秒为单位返回key的剩余生存时间
返回值:当key不存在时,返回-2 当key存在但没有设置生存时间时,返回-1 否则,以毫秒为单位,返回key的剩余生存时间
randomkey
RANDOMKEY
从当前数据库中随机返回(不删除)一个key
当数据库不为空时,返回一个key 当数据库为空时,返回nil
rename
RENAME key newkey
将key改名为newkey。当key和nwekey相同,或者key不存在时,返回一个错误。当newkey已经存在时,RENAME命令将覆盖旧值。
改名成功时提示OK,失败时候返回一个错误。
renamenx
RENAMENX key newkey
当且仅当newkey不存在时,将key改名为newkey;当key不存在时,返回一个错误
修改成功时,返回1 如果newkey已经存在,返回0
restore
RESTORE key ttl serialized-value [REPLACE]
反序列化给定的序列化值,并将它和给定的key关联。参数ttl以毫秒为单位为key设置生存时间;如果ttl为0,那么不设置生存时间。RESTORE在执行反序列化之前会先对序列化值的RDB版本和数据校验和进行检查,如果RDB版本不相同或者数据不完整的话,那么RESTORE会拒绝进行反序列化,并返回一个错误。
如果反序列化成功返回OK,否则返回一个错误
sort
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern...]] [ASC|DESC] [ALPHA] [STORE destination]
返回或保存给定列表、集合、有序集合key中经过排序的元素。排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。
没有是用STORE参数,返回列表形式的排序结果。 使用STORE参数,返回排序结果的元素数量。
ttl
TTL key
以秒为单位,返回给定key的剩余生存时间(TTL,time to live)
当key不存在时,返回-2 当key存在但没有生存时间时,返回-1 否则,以秒为单位,返回key的剩余生存时间。
type
TYPE key
返回key所存储的值的类型
none(key不存在) string(字符串) list(列表) set(集合) zset(有序集) hash(哈希表)
scan
SCAN cursor [MATCH pattern] [COUNT count]
SCAN命令及其相关的SSCAN命令、HSCAN命令和ZSCAN命令都用于增量地迭代(incrementally iterate)一集元素: SCAN命令用于迭代当前数据库中的数据库键 SSCAN命令用于迭代集合键中的元素 HSCAN命令用于迭代哈希键中的键值对 ZSCAN命令用于迭代有序集合中的元素(包括元素成员和元素分值)
SCAN命令的回复是一个包含两个元素的数组,第一个数组元素是用于进行下一次迭代的新游标,而第二个数组元素则是一个数组,这个数组中包含了所有被迭代的元素。
String
append
APPEND key value
如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来值得末尾 如果key不存在,APPEND就简单地将给定key设为value,就像执行SET key value一样。
追加value之后,key中字符串的长度
bitcount
BITCOUNT key [start] [end]
计算给定字符串中,被设置为1的比特位的数量。 一般情况下,给定的整个字符串都会被进行计数,通过指定额外的start或end参数,可以让计数只在特定的位上进行。
被设置为1的位的数量
bitop
BITOP operation destkey key [key ...]
对一个或多个保存二进制的字符串key进行位元操作,并将结果保存到destkey上。 operation 可以是AND、OR、NOT、XOR这四种操作中的任意一种。 当BITOP处理不同长度的字符串时,较短的那个字符串所缺少的部分会被看作0。 空的key也被看作是包含0的字符串序列
保存到destkey的字符串的长度,和输入key中最长的字符串长度相等。
decr
DECR key
将key中储存的数字值减一。如果key不存在,那么key会被初始化为0,然后再执行DECR操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。本操作的值限制在64位(bit)有符号数字表示之内。
执行DECR命令之后key的值。
decrby
DECRBY key decrement
将key所储存的值减去减量decrment
减去decrment之后,key的值
get
GET key
返回key所关联的字符串值。如果key不存在那么返回特殊值nil。 如果key储存的值不是字符串类型,返回一个错误,因为GET只能用于处理字符串值。
当key不存在时,返回nil,否则,返回key的值。 如果key不是字符串类型,那么返回一个错误。
getbit
GETBIT key offset
对key所储存的字符串值,获取指定偏移量上的位(bit)。 当offset比字符串值的长度达,或者key不存在时,返回0。
字符串值指定偏移量上的位(bit)
getrange
GETRANGE key start end
返回key中字符串值的字字符串,字符串的截取范围由start和end两个偏移量决定(包括start和end在内)。 负数偏移量表示从字符串最后开始计数,-1表示最后一个字符,-2表示倒数第二个,以此类推。GETRANGE通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。
截取取出的子字符串。
getset
GETSET key value
将给定的key的值设为value,并返回key的旧值。
返回给定key的旧值。 当key没有旧值,也就是说当key不存在时,返回nil 当key存在但不是字符串类型时,返回一个错误
incr
INCR key
将key中存储的数字值增一 如果key不存在,那么key的值会先被初始化为0,然后再执行INCR操作。
执行INCR命令之后key的值
incrby
incrby key increment
将key所储存的值加上增量increment
加上increment之后,key的值。
incrbyfloat
INCRBYFLOAT key inscrement
为key中所储存的值加上浮点数增量increment
执行命令后的key的值
mget
MGET key [key ...]
返回所有(一个或多个)给定key的值。如果给定的key里面,有某个key不存在,那么这个key返回特殊值nil。因此,该命令永不失败。
一个包含所有给定key值得列表
mset
mset key value [key value ...]
同时设置一个或多个key-value对。如果某个给定key已经存在,那么MSET会用新值覆盖原来的旧值,如果这不是你所希望的效果,可以使用MSETNX。 MSET是一个原子性(atomic)操作,所有给定key都会在同一时间内被设置,某些给定key被更新而另一些给定key没有改变的情况不可能发生
总是返回OK
msetnx
psetex
PSETEX key millisecnods value
这个命令和setex命令相似,但它以毫秒为单位设置key的生存时间,而不是像SETEX命令那样,以秒为单位
设置成功时返回OK
set
SET key value [EX seconds] [PX millisends] [NX|XX]
将字符串值value关联到key 如果key已经持有其他值,SET就要覆写旧值,无视类型。 队友某个原本带有生存时间(TTL)的键来说,当SET命令成功在这个键上执行时,这个键原有的TTL将被清除。 从Redis2.6.12版本开始,SET命令的行为可以通过一系列参数来修改: EX second:设置键的过期时间为second秒,SET key value EX second效果等同于SETEX key second value。 PX millisecond:设置键过期的时间为millisecond毫秒。SET key value PX millisecond效果等同于PSETEX key millisecond value. NX:只在键不存在时,才对键进行设置操作。SET key value NX 效果等同于SETNX key value XX:只有键已存在时,才对键进行设置操作。
在Redis 2.6.12版本以前,SET命令总是返回OK 从Redis 2.6.12版本开始,SET在设置操作成功完成时,才返回OK 如果设置了NX或者XX,但因为条件没达到二造成设置操作未执行,那么命令返回空批量回复(NULL Bulk Reply)
setbit
SETBIT key offset value
对key所存储的字符串值,设置或清除指定偏移量上的位(bit)。 位的设置或清除取决于value参数,可以是0也可以是1 当key不存在时,自动生成一个新的字符串值。
指定偏移量原来存储的位
setex
SETEX key seconds value
将值value关联到key,并将key的生存时间设为seconds(以秒为单位) 如果key已经存在,SETEX命令将覆写旧值。 SETEX是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,该命令在Redis用作缓存时,非常实用
设置成功时返回OK 当seconds参数不合法时,返回一个错误
setnx
SETNX key value
将key的值设为value,当且仅当key不存在。 若给定的key已经存在,则SETNX不做任何动作。
设置成功,返回1 设置失败,返回0
setrange
SETRANGE key offset value
用value参数覆写(overwrite)给定key所存储的字符串值,从偏移量offset开始 不存在的key当做空白字符串处理 SETRANGE命令会确保字符串足够长以便将value设置在制定的偏移量上,如果给定的key原来存储的字符串长度比偏移量小,那么原字符和偏移量之间的空白将用零字节来填充。
被SETRANGE修改之后,字符串的长度
strlen
STRLEN key
返回key所存储的字符串值得长度。 当key存储的不是字符串值时,返回一个错误。
字符串值的长度。 当key不存在时,返回0
Hash
hdel
HDEL key field[field ...]
删除哈希表key中的一个或多个指定域,不存在的域将被忽略
被成功移除的域的数量,不包括被忽略的域
hexists
HEXISTS key field
查看哈希表key中,给定域field是否存在
如果哈希表含有给定域,返回1 如果哈希表不含有给定域,或key不存在,返回0
hget
HGET key field
返回哈希表key中给定域field的值。
给定域的值。 当给定域不存在或是给定key不存在时,返回nil。
hgetall
HGETALL key
返回哈希表key中,所有的域和值
以列表形式返回哈希表的域和域的值。若key不存在,返回空列表
hincrby
HINCRBY key field increment
为哈希表key中的域field的值加上增量increment。增量也可以为负数,相当于对给定域进行减法操作。如果key不存在,一个新的哈希表被创建并执行HINCRBY命令。如果域field不存在,那么在执行命令前,域的值被初始化为0。
执行HINCRBY命令之后,哈希表key中域field的值。
hincrbyfloat
HINCRBYFLOAT key field increment
为哈希表key中的域field加上浮点数增量increment
执行加法操作之后field域的值。
hkeys
HKEYS key
返回哈希表key中的所有域
一个包含哈希表中所有域的表。 当key不存在时,返回一个空表
hlen
HLEN key
返回哈希表key中域的数量
哈希表中域的数量。 当key不存在时,返回0
hmget
HMGET key field [field...]
返回哈希表key中,一个或多个给定域的值。 如果给定的域不存在于哈希表,那么返回一个nil值 因为不存在的key被当作一个空哈希表来处理,所以对一个不存在的key进行HMGET操作将返回一个只带有nil值的表
一个包含多个给定域的关联值得表,表值的排列顺序和给定域参数的请求顺序一样。
hmset
HMSET key field value [field value ...]
同时将多个field-value对设置到哈希表key中。此命令会覆盖哈希表中已存在的域。 如果key不存在,一个空哈希表被创建并执行HMSET操作。
如果命令执行成功,返回OK。 当key不是哈希表类型时,返回一个错误。
hset
HSET key field value
将哈希表key中的域field的值设为value。 如果key不存在,一个新的哈希表被创建并执行HSET操作。 如果域field已经存在于哈希表中,旧值将被覆盖。
如果field是哈希表中的一个新建域,并且值设置成功,返回1. 如果哈希表中域field已经存在且旧值已被新值覆盖,返回0.
hsetnx
HSETNX key field value
将哈希表key中的域field的值设置为value,当前仅当域field不存在。 如域field已经存在,该操作无效。 如果key不存在,一个新哈希表被创建并执行HSETNX命令。
设置成功,返回1 如果给定域已经存在且没有操作被执行,返回0.
hvals
HVALS key
返回哈希表key中所有域的值。
一个包含哈希表中所有值的表。 当key不存在时,返回一个空表。
hscan
HSCAN key cursor [MATCH pattern] [COUNT count]
List
blpop
BLPOP key [key ...] timeout
BLPOP是列表的阻塞式(blocking)弹出原语。 它是LPOP命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被BLPOP命令阻塞,直到等待超时或发现可弹出元素为止。 当给定多个key参数时,按参数key的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。 阻塞行为 如果所有给定key都不存在或包含空列表,那么BLPOP命令将阻塞连接,直到等待超时,或有另一个客户端对给定key的任意一个执行LPUSH或RPUSH命令为止。 超时参数timeout接受一个以秒为单位的数字作为值。超时参数设为0表示阻塞时间可以无限期延长。
如果列表为空,返回一个nil 否则,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的key,第二个元素是被弹出元素的值。
brpop
BRPOP key [key ...] timeout
BRPOP是列表的阻塞式(blocking)弹出原语。 它是RPOP命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被BRPOP命令阻塞,直到等待超时或发现可弹出元素为止。 当给定多个key参数时,按参数key的先后顺序依次检查各个列表,弹出第一个非空列表的尾部元素。
假如指定时间内没有任何元素被弹出,则返回一个nil和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的key,第二个元素是被弹出元素的值。
brpoplpush
BRPOPLPUSH source destination timeout
BRPOPLPUSH 是RPOPLPUSH的阻塞版本,当给定列表source不为空时,BRPOPLPUSH的表现和RPOPLPUSH一样。 当列表source为空时,BRPOPLPUSH命令将阻塞连接,直到等待超时,或有另一个客户端对source执行LPUSH或RPUSH命令为止。
假如在指定时间内没有任何元素被弹出,则返回一个nil和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长。
lindex
LINDEX key index
返回列表key中,下标为index的元素。 下标(index)参数start和stop都以0为底,也就是说,以0表示列表的第一个元素,以1表示列表的第二个元素,以此类推。也可以使用负数下标,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。 如果key不是列表类型,返回一个错误。
列表中下标为index的元素。 如果index参数的值不在列表的区间范围内(out of range),返回nil
linsert
LINSERT key BEFORE|AFTER pivot value
将值value插入列表key当中,位于值pivot之前或之后 当pivot不存在于列表key时,不执行任何操作。 当key不存在时,key被视为空列表,不执行任何操作。 如果key不是列表类型,返回一个错误。
如果命令执行成功,返回插入操作完成之后,列表的长度。 如果没有找到pivot,返回-1 如果key不存在或为空列表,返回0
llen
LLEN key
返回列表key的长度。 如果key不存在,则key被解释为一个空列表,返回0 如果key不是列表类型,返回一个错误。
列表key的长度
lpop
LPOP key
移除并返回列表key的头元素
列表的头元素 当key不存在时,返回nil
lpush
LPUSH key value [value ...]
将一个或多个值value插入到列表key的表头 如果有多个value值,那么各个value值按从左到右的顺序依次插入到表头; 如果key不存在,一个空列表会被创建并执行LPUSH操作。 当key存在但不是列表类型时,返回一个错误。
执行LPUSH命令后,列表的长度
lpushx
LPUSHX key value
将值value插入列表key的表头,当且仅当key存在并且是一个列表。 和LPUSH命令相反,当key不存在时,LPUSHX命令什么也不做。
LPUSHX命令执行后,表的长度
lrange
LRANGE key start stop
返回列表key中指定区间内的元素,区间以偏移量start和stop指定。 下标(index)参数start和stop都以0为底,也就是说,以0表示列表的第一个元素,以1表示列表的第二个元素,以此类推。 如果start下标比列表的最大下标end还要大,那么LRANGE返回一个空列表。 如果stop下标比end下标还要大,Redis将stop的值设置为end。
一个列表,包含指定区间内的元素。
lrem
LREM key count value
根据参数count的值,移除列表中与参数value相等的元素。 count>0:从表头开始向表尾搜索,移除与value相等的元素,数量为count。 count<0:从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。 count=0:移除表中所有与value相等的值。
被移除元素的数量。 因为不存在的key被视作空表(empty list),所以当key不存在时,LREM命令总是返回0.
lset
LSET key index value
将列表key下标为index的元素的值设置为value. 当index参数超出范围,或对一个空列表(key不存在)进行LSET时,返回一个错误。
操作成功返回ok,否则返回错误信息。
ltrim
LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间内的元素都将被删除。 当key不是列表类型时,返回一个错误。 超出范围的下标值不会引起错误。 如果start下标比列表的最大下标end(LLEN list 减去1)还要大,或者start>stop,LTRIM返回一个空列表。 如果stop下标比end下标还要大,Redis将stop的值设置为end。
命令执行成功时,返回ok
rpop
RPOP key
移除被返回列表key的尾元素
列表的尾元素。 当key不存在时,返回nil
rpoplpush
RPOPLPUSH source destination
命令RPOPLPUSH在一个原子时间内,执行以下两个动作: 将列表source中最后一个元素(尾元素)弹出,并返回给客户端。 将source弹出的元素插入到列表destination,作为destination列表的头元素。 如果source不存在,值nil被返回,并且不执行其他动作。 如果source和destination相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。
被弹出的元素。
rpush
RPUSH key value[value ...]
将一个或多个值value插入到列表key的表尾(最右边) 如果有多个value值,那么各个value值按从左到右的顺序依次插入表尾。 如果key不存在,一个空列表会被创建并执行RPUSH操作。 当key存在但不是列表类型时,返回一个错误。
执行RPUSH操作后,表的长度。
rpushx
RPUSHX key value
将值value插入到列表key的表尾,当且仅当key存在并且是一个列表。 和RPUSH命令相反,当key不存在时,RPUSHX命令什么也不做。
RPUSHX命令执行后,表的长度
Set
sadd
SADD key member [member ...]
将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略。 假如key不存在,则创建一个只包含member元素作成员的集合。 当key不是集合类型时,返回一个错误。
被添加到集合中的新元素的数量,不包括被忽略的元素。
scard
SCARD key
返回集合key的基数(集合中元素的数量)
集合的基数。 当key不存在时,返回0.
sdiff
SDIFF key [ key ...]
返回一个集合的全部成员,该集合是所有给定集合之间的差集。 不存在的key被视为空集。
一个包含差集成员的列表。
sdiffstore
SDIFFSTORE destination key [key ...]
这个命令的作用和SDIFF类似,但它将结果保存到destination集合,而不是简单地返回结果集。 如果destination集合已经存在,则将其覆盖。 destination可以是key本身。
结果集中的元素数量。
sinter
SINTER key [key ...]
返回一个集合的全部成员,该集合是所有给定集合的交集。 不存在的key被视为空集。 当给定集合当中有一个空集时,结果也为空集。
交集成员的列表
sinterstore
SINTERSTORE destination key [key ...]
这个命令类似SINTER命令,但它将结果保存到destination集合,而不是简单地返回结果集。 如果destination集合已经存在,则将其覆盖。 destination可以是key本身。
结果集中的成员数量。
sismember
SISMEMBER key member
判断member原始是否集合key的成员。
如果member元素是集合的成员,返回1. 如果member元素不是集合的成员,或key不存在,返回0.
smembers
SMEMBERS key
返回集合key中的所有成员。 不存在的key被视为空集合。
集合中的所有成员。
smove
SMOVE source destination member
将member元素从source集合移动到destination集合。 SMOVE是原子性操作。如果source集合不存在或不包含指定的member元素,则SMOVE不执行任何操作,仅返回0。否则,member元素从source集合中被移除,并添加到destination集合中去。 当destination集合已经包含member元素时,SMOVE命令只是简单地将source集合中的member元素删除。 当source或destination不是集合类型时,返回一个错误。
如果member元素被成功移除,返回1。 如果member元素不是source集合的成员,并且没有任何操作对destination集合执行,那么返回0.
spop
SPOP key
移除并返回集合中的一个随机元素。 如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用SRANDMEMBER命令。
被移除的随机元素。 当key不存在或key是空集时,返回nil。
srandmember
SRANDMEMBER key [count]
如果命令执行时,只提供了key参数,那么返回集合中的一个随机元素。 从Redis2.6版本开始,SRANDMEMBER命令接受可选的count参数: 如果count为正数,且小于集合基数,那么命令返回一个包含count个元素的数组,数组的元素各不相同。如果count大于等于集合基数,那么返回整个集合。 如果count为负数,那么命令返回一个数组,数组中国的元素可能会重复出现多次,而数组的长度为count的绝对值。
只提供key参数时,返回一个元素;如果集合为空,返回nil 如果提供了count参数,那么返回一个数组;如果集合为空,返回空数组。
srem
SREM key member [member ...]
移除集合key中的一个或多个member元素,不存在的member元素会被忽略。 当key不是集合类型,返回一个错误。
被成功移除的元素的数量,不包括被忽略的元素。
sunion
SUNION key [key ...]
返回一个集合的全部成员,该集合是所有给定集合的并集。 不存在的key被视为空集。
并集成员的列表。
sunionstore
SUNIONSTORE destination key [key ...]
这个命令类似于SUNION命令,但它将结果保存到destination集合,而不是简单地返回结果集。 如果destination已经存在,则将其覆盖。destination可以是key本身。
结果集中的元素数量。
sscan
SSCAN 可以 cursor [MATCH pattern] [COUNT count]
SortedSet
zadd
ZADD key score member [ [score member] [score member] ...]
将一个或多个member元素及其score值加入到有序集key当中。 如果某个member已经是有序集的成员,那么更新这个member的score值,并通过重新插入这个member元素,来保证该member在正确的位置上。 score值可以是整数值或双精度浮点数。 如果key不存在,则创建一个空的有序集并执行ZADD操作。 当key存在但是不是有序集类型时,返回一个错误。
被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员。
zcard
ZCARD key
返回有序集key的基数。
当key存在且是有序类型时,返回有序集的基数 当key不存在时,返回0.
zcount
ZCOUNT key min max
返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员数量。
score值在min和max之间的成员数量。
zincrby
ZINCRBY key increment member
为有序集key的成员member的score值加上增量increment。 当key不存在,或member不是key成员时,ZINCRBY key increment member等同于ZADD key increment member。 当key不是有序集类型时,返回一个错误。 score值可以是整数值或双精度浮点数。
member成员的新score值,以字符串形式表示。
zrange
ZRANGE key start stop [WITHSCORES]
返回有序集key中,指定区间内的成员。 其中成员的位置按score值递增(从小到大来排序)。 具有相同score值的成员按字典序(lexicographical order)来排列。 如果你需要成员按score值递减(从大到小)来排列,请使用ZREVEANGE命令。 超出范围的下标并不会引起错误。 比如说,当start的值比有序集的最大下标还要大,或是start>stop时,ZRANGE命令只是简单地返回一个空列表。另一方面,加入stop参数的值比有序集的最大下标还要大,那么Redis将stop当作最大下标来处理。 可以通过使用WITHSCORES选项,来让成员和它的score值一并返回,返回列表以value1,score1,...,valueN,scoreN的格式表示。客户端库可能会返回一些更复杂的数据类型,比如数组、元组等。
指定区间内,带有score值(可选)的有序集成员的列表。
zrangebyscore
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列。 具有相同score值的成员按字典序(lexicographical order)来排列(该属性是有序集提供的,不需要额外的计算)。 可选的LIMIT参数指定返回结果的数量及区间(就像SQL中的SELECTLIMIToffset,count),注意当offset很大时,定位offset的操作可能需要遍历整个有序集。 可选的WITHSCORES参数决定结果集是单单返回有序集的成员,还是将有序集成员及其score值一起返回。 区间及无限 min和max可以是-inf和+inf,这样一来,你就可以在不知道有序集的最低和最高score值的情况下,使用ZRANGEBYSCORE这类命令。 默认情况下,区间的取值使用闭区间(小于等于或大于等于),也可以通过给参数前增加(符号来使用可选的开区间(小于或大于)
指定区间内,带有score值(可选)的有序集成员的列表。
zrank
ZRANK key member
返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列 排名以0为底,也就是说,score值最小的成员排名为0。 使用ZREVRANK命令可以获得成员按score值递减(从大到小)排列的排名。
如果member是有序集key的成员,返回member的排名。 如果member不是有序集key的成员,返回nil。
zrem
ZREM key member [member ...]
移除有序集key中或多个成员,不存在的成员将被忽略。 当key存在但不是有序集类型时,返回一个错误。
被成功移除的成员的数量,不包括被忽略的成员。
zremrangebyrank
ZREMRANGEBYRANK key start stop
移除有序集key中,指定排名(rank)区间内的所有成员。 区间分别以下标参数start和stop支出,包含start和stop在内。
被移除成员的数量。
zremrangebyscore
ZREMRANGEBYSCORE key min max
移除有序集key中,所有score值介于min和max之间(包括等于min或max)的成员
被移除成员的数量
zrevrange
zrevrange key start stop [WITHSCORES]
返回有序集key中,指定区间内的成员。 其中成员的位置按score值递减(从大到小)来排列。具有相同score值的成员按字典序的逆序(reverse lexicographical order)排列。 除了成员按score值递减的次序排列这一点外,ZREVRANGE命令的其他方面和ZRANGE命令一样。
指定区间内,带有score值(可选)的有序集成员的列表。
zscore
ZSCORE key member
返回有序集key中,成员member的score值。 如果member元素不是有序集key的成员,或key不存在,返回nil。
member成员的score值,以字符串形式表示。
zunionstore
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的并集,其中给定key的数量必须以numkeys参数指定,并将该并集(结果集)储存到destination。 默认情况下,结果集中某个成员的score值是所有给定集下该成员score值之和。 WEIGHTS 使用WEIGHTS选项,你可以为每个给定有序集分别指定一个乘法因子(multiplication factor),每个给定有序集的所有成员的score值在传递给聚合函数(aggregation function)之前都要先乘以该有序集的因子。 如果没有指定WEIGHTS选项,乘法因子默认设置为1。 AGGREGATE 使用AGGREGATE选项,你可以指定并集的结果集的聚合方式。 默认使用的参数SUM,可以将所有集合中某个成员的score值之和作为结果集中该成员的score值;使用参数MIN,可以将所有集合中某个成员的最小score值作为结果集中该成员的score值,而参数MAX则是将所有集合中某个成员的最大score值作为结果集中该成员的score值。
保存到destination的结果集的基数。
zinterstore
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的交集,其中给定key的数量必须以numkeys参数指定,并将该交集(结果集)储存到destination。 默认情况下,结果集中某个成员的score值是所有给定集下该成员的score值之和。
保存到destination的结果集的基数。
zscan
ZSCAN key cursor [MATCH pattern] [COUNT count]
zrangebylex
ZRANGEBYLEX key min max [LIMIT offset count]
当有序集合的所有成员都具有相同的分值时,有序集合的元素会根据成员的字典序(lexicographical ordering)来进行排序,而这个命令则可以返回给定的有序集合键key中,值介于min和max之间的成员。 如果有序集合里面的成员带有不同的分值,那么命令返回的结果是未指定的(unspcified)。 命令会使用C语言中的memcmp()函数,对集合中的每个成员进行逐个字节的对比(byte-by-byte compare),并按照从低到高的顺序,返回排序后的集合成员。如果两个字符串有一部分内容是相同的话,那么命令会认为较长的字符串比较短的字符串要大。 可选的LIMIT offset count参数用于获取指定范围内的匹配元素。 如何指定范围区间 合法的min和max参数必须包含(或者[,其中(表示开区间(指定的值不会被包含在范围之内),而[则表示闭区间(指定的值会被包含在范围之内)。 特殊值+和-在min参数以及max参数中具有特殊的意义,其中+表示正无限,而-表示负无限。因此,向一个所有成员的分值都相同的有序集合发送命令ZRANGEBYLEX <zset> - +,命令将返回有序集合中的所有元素。
数组回复:一个列表,列表里面包含了有序集合在指定范围内的成员。
zlexcount
ZLEXCOUNT key min max
对于一个所有成员的分值都相同的有序集合键key来说,这个命令会返回该集合中,成员介于min和max范围内的元素数量。
整数回复:指定范围内的元素数量。
zremrangebylex
ZREMRANGEBYLEX key min max
对于一个所有成员的分值都相投的有序集合键key来说,这个命令会移除该集合中,成员介于min和max范围内的所有元素。
整数回复:被移除的元素数量。
HyperLogLog
pfadd
PFADD key element [element ...]
将任意数量的元素添加到指定的HyperLogLog里面。 作为这个命令的副作用,HyperLogLog内部可能会被更新,以便反映一个不同的唯一元素的估计数量(也即是集合的基数)。 如果HyperLogLog估计的近似基数(approximated cardinality)在命令执行之后出现了变化,那么命令返回1 ,否则返回0。如果命令执行时给定的键不存在,那么程序将先创建一个空的HyperLogLog结构,然后再执行命令。 调用PFADD命令时可以只给出键名而不给定元素: 如果给定键已经是一个HyperLogLog,那么这种调用不会产生任何效果。 但如果给定的键不存在,那么命令会创建一个空的HyperLogLog,并向客户端返回1.
整数回复:如果HyperLogLog的内部存储被修改了,那么返回1,否则返回0。
pfcount
PFCOUNT key [key ...]
当PFCOUNT命令作用于单个键时,返回储存在给定键的HyperLogLog的近似基数,如果键不存在,那么返回0. 当PFCOUNT命令作用于多个键时,返回所有给定HyperLogLog的并集的近似基数,这个近似基数是通过将所有给定HyperLogLog合并至一个临时HyperLogLog来计算得出的。 通过HyperLogLog数据结构,用户可以使用少量固定大小的内存,来储存集合中的唯一元素(每个HyperLogLog只需使用12k字节内存,以及几个字节的内存来储存键本身)。 命令返回的可见集合(observed set)基数并不是精确值,而是一个带有0.81%标准错误的近似值。
整数回复:给定HyperLogLog包含的唯一元素的近似数量。
pfmerge
PFMERGE destkey sourcekey [sourcekey ...]
将多个HyperLogLog合并(merge)为一个HyperLogLog,合并后HyperLogLog的基数接近于所有输入HyperLogLog的可见集合(observed set)的并集。 合并得出的HyperLogLog会被储存在destkey键里面,如果该键不存在,那么命令在执行之前,会先为该键创建一个空的HyperLogLog。
字符串回复:返回OK
GEO
geoadd
GEOADD key longitude latitude member[longitude latitude member...]
将给定的空间元素(纬度、精度、名字)添加到指定的键里面。这些数据会以有序集合的形式被储存在键里面,从而使得像GEORADIUS和GEORADIUSBYMEMBER这样的命令可以在之后通过位置查询取得这些元素。 GEOADD命令以标准的x,y格式接受参数,所以用户必须先输入经度,然后再输入纬度。GEOADD能够激励的坐标是有限的;非常接近的两极区域是无法被索引的。 有效的经度介于-180度至180度之间。 有效的纬度介于-85.05112878度至85.05112878之间。 当用户尝试输入一个超出范围的经度或者纬度时,GEOADD命令将返回一个错误。
新添加到键里面的空间元素数量,不包括那些已经存在但是被更新的元素。
geopos
GEOPOS key member [member ...]
从键里面返回所有给定位置元素的位置(经度和纬度)。 因为GEOPOS命令接受可变数量的位置作为输入,所以即使用户只给了一个位置元素,命令也会返回数组回复。
GEOPOS命令返回一个数组,数组中的每个项都由两个元素组成:第一个元素为给定位置元素的经度,而第二个元素则为给定位置元素的纬度。 当给定的位置元素不存在时,对应的数组项为空值。
geodist
GEODIST key member1 member2 [unit]
返回两个给定位置之间的距离。 如果两个位置之间的其中一个不存在,那么命令返回空值。 指定单位的参数unit必须是以下单位的其中一个: m表示单位为米 km表示单位为千米 mi表示单位为英里 ft表示单位为英尺 如果用户没有显式地指定单位参数,那么GEODIST默认使用米作为单位。 GEODIST命令在计算距离时会假设地球为完美的球形,在极限情况下,这一假设最大会造成0.5%的误差。
计算出的距离会以双精度浮点数的形式被返回。如果给定的位置元素不存在,那么命令返回空值。
georadius
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]
以给定的经纬度为中心,返回键包含的位置元素当中,与中心的距离不超过给定最大距离的所有位置元素。 在给定以下可选项时,命令会返回额外的信息: WITHDIST:在返回位置元素的同时,将位置元素与中心之间的距离也一并返回。距离的单位和用户给定的范围单位保持一致。 WITHCOORD:将位置元素的经度和纬度也一并返回。 WITHHASH:以52位有符号整数的形式,返回位置元素经过原始geohash编码的有序集合分值。这个选项主要用于底层应用或者调试,实际的作用并不大。 命令默认返回未排序的位置元素。通过一下两个参数,用户可以指定被返回位置元素的排序方式: ASC:根据中心的位置,按照从近到远的方式返回位置元素。 DESC:根据中心的位置,按照从远到近的方式返回位置元素。 在默认情况下,GEORADIUS命令会返回所有匹配的位置元素。虽然用户可以使用COUNT<count>选项去获取前N个匹配元素,但是因为命令内部可能会需要对所有被匹配的元素进行处理,所以在对一个非常大的区域进行搜索时,即使只是用COUNT选项去获取少量元素,命令的执行速度也可能会非常慢。但是从另一方面来说,使用COUNT选项去减少需要返回元素的数量,对于减少带宽来说仍然是非常有用的。
GEORADIUS命令返回一个数组,具体来说: 在没有给定任何WITH选项的情况下,命令只会返回一个像["New York","Milan","Paris"]这样的线性(linear)列表。 在指定了WITHCOORD、WITHDIST、WITHHASH等选项的情况下,命令返回一个二层嵌套数组,内层的每个子数组就表示一个元素。 在返回嵌套数组时,子数组的第一个元素总是位置元素的名字。至于额外的信息,则会作为子数组的后续元素,按照以下顺序被返回: 1.以浮点数格式返回的中心与位置元素之间的距离,单位与用户指定范围时的单位一致。 2.geohash整数。 由两个元素组成的坐标,分别为经度和纬度。
georadiusbymember
GEORADIUSBYMEMBER key member redius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]
这个命令和GEORADIUS命令一样,都可以找出位于指定范围内的元素,但是GEORADIUSBYMEMBER的中心店是由给定的位置元素决定的,而不是像GEORADIUS那样,使用输入的经度和纬度来决定中心点。
一个数组,数组中的每个项表示一个范围之内的位置元素。
geohash
GEOHASH key member [member ...]
返回一个或多个位置元素的Geohash表示。
一个数组,数组的每个项都是一个geohash。命令返回的geohash的位置与用户给定的位置元素的位置一一对应。
Pub/Sub
psubscribe
PSUBSCRIBE pattern [pattern ...]
订阅一个或多个符合给定模式的频道。每个模式以*作为匹配符,比如it*匹配所有以it开头的频道(it.news、it.blog、it.tweets等等),news.*匹配所有以news.开头的频道(news.it、news.global.today等等),诸如此类。
接收到的信息
publish
PUBLIST channel message
将信息message发送到指定的频道channel
接收到信息message的订阅者数量。
pubsub
PUBSUB <subcommand> [argument [argument ...]]
PUBSUB是一个查看订阅与发布系统状态的内省命令,它由数个不同格式的子命令组成。 (1)PUBSUB CHANNELS [pattern] 列出当前的活跃频道。 活跃频道指的是那些至少有一个订阅者的频道,订阅模式的客户端不计算在内。 pattern参数是可选的: 如果不给出pattern参数,那么列出订阅与发布系统中的所有活跃频道。 如果给出pattern参数,那么只列出和给定模式pattern相匹配的那些活跃频道。 返回值:一个由活跃频道组成的列表。 (2)PUBSUB NUMSUB [channel-1 ...channel-N] 返回给定频道的订阅者数量,订阅模式的客户端不计算在内。 返回值:一个多条批量回复(Multi-bulk reply),回复中包含给定的频道,以及频道的订阅者数量。格式为:频道channel-1,channel-1的订阅者数量,频道channel-2,channel-2的订阅者数量,诸如此类。回复中频道的排列顺序和执行命令时给定频道的排列顺序一致。不给定任何频道而直接调用这个命令也是可以的,在这种情况下,命令只返回一个空列表。 (3)PUBSUB NUMPAT 返回订阅模式的数量。 注意,这个命令返回的不是订阅模式的客户端的数量,而是客户端订阅的所有模式的数量总和。 一个整数回复(Integer reply)。
punsubscribe
PUNSUBSCRIBE [pattern [pattern ...]]
指示客户端退订所有给定模式。 如果没有模式被指定,也即是,一个无参数的PUNSUBSCRIBE调用被执行,那么客户端使用PSUBSCRIBE命令订阅的所有模式都会被退订。 在这种情况下,命令会返回一个信息,告知客户端所有被退订的模式。
这个命令在不同的客户端中有不同的表现。
subscribe
SUBSCRIBE channel [channel ...]
订阅给定的一个或多个频道的信息。
接收到的信息
unsubscribe
UNSUBSCRIBE [channel [channel ...]]
指示客户端退订给定的频道。 如果没有频道被指定,也即是,一个无参数的UNSUBSCRIBE调用被执行,那么客户端使用SUBSCRIBE命令订阅的所有频道会被退订。在这种情况下,命令会返回一个信息,告知客户端所有被退订的频道。
这个命令在不同的客户端有不同的表现。
Transaction
discard
DISCARD
取消事务,放弃执行事务块内所有的命令。 如果正在使用WATCH命令监视某个(或某些)key,那么取消所有监视,等同于执行命令UNWATCH。
总是返回OK
exec
EXEC
执行所有事务块内的命令。 假如某个(或某些)key正处于WATCH命令的监视之下,且事务块中有和这个(或这些)key相关的命令,那么EXEC命令只在这个(或这些)key没有被其他命令所改动的情况下执行并生效,否则该事务被打断(abort)。
事务块内所有命令的返回值,按命令执行的先后顺序排列。 当操作被打断时,返回nil
multi
MULTI
标记一个事务块的开始。 事务块内的多条命令会按照先后顺序被放到一个队列当中,最后由EXEC命令原子性(atomic)地执行。
总是返回ok
unwatch
UNWATCH
取消WATCH命令对所有key的监视。 如果在执行WATCH命令之后,EXEC命令或DISCARD命令先被执行了的话,那么就不需要再执行UNWATCH了。 因为EXEC命令会执行事务,因此WATCH命令的效果已经产生了;而DISCARD命令在取消事务的同时也会取消所有对key的监视,因此这两个命令执行之后,就没有必要执行UNWATCH了。
总是OK
watch
WATCH key [key ...]
监视一个(或多个)key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断。
总是返回OK
script
eval
EVAL script numkeys key [key ...] arg [arg ...]
从Redis2.6.0版本开始,通过内置的Lua解释器,可以使用EVAL命令对Lua脚本进行求值。 script参数是一段Lua5.1脚本程序,它会被运行在Redis服务器上下文中,这段脚本不必(也不应该)定义为一个Lua函数。 numkeys参数用于指定键名参数的个数。 键名参数 key [key ...]从EVAL的第三个参数开始算起,表示脚本中所用到的那些Redis键(key),这些键名参数可以在Lua中通过全局变量KEYS数组,用1为基址访问的形式访问(KEY[1],KEY[2],以此类推)。 在命令的最后,那些不是键名参数的附加参数arg [args ...],可以在Lua中通过全局变量ARGV数组访问,访问的形式和KEYS变量类似(ARGV[1]、ARGV[2],诸如此类)。 Redis使用单个Lua解释器去运行所有脚本,并且,Redis也保证脚本会议原子性(atomic)的方式执行:当某个脚本正在运行的时候,不会有其他脚本或Redis命令被执行。 Redis提供了一下几个SCRIPT命令,用于对脚本子系统(scripting subsystem)进行控制: SCRIPT FLUSH:清除所有脚本缓存 SCRIPT EXISTS:根据给定的脚本校验和,检查指定的脚本是否存在于脚本缓存 SCRIPT LOAD:将一个脚本装入脚本缓存,但并不立即运行它 SCRIPT KILL:杀死当前正在运行的脚本 在Lua脚本中,可以通过调用redis.log函数来写Redis日志(log) redis.log(loglevel,message) 其中,message参数是一个字符串,而loglevel参数可以是以下任意一个值: redis.LOG_DEBUG redis.LOG_VERBOSE redis.LOG_NOTICE redis.LOG_WARNING 上面这些等级(level)和标准Redis日志的等级相对应。 对于脚本散发(emit)的日志,只有那些和当前Redis实例所设置的日志等级相同或更高级的日志才会被散发。 脚本应该仅仅用于传递参数和对Reids数据进行处理,它不应该尝试去访问外部系统(比如文件系统),或者执行任务系统调用。 初次之外,脚本还有一个最大执行时间限制,它的默认值是5秒钟,一般正常运作的脚本通常可以在几分之几毫秒之内完成,花不了那么多时间,这个限制主要是为了防止因编程错误而造成的无限循环而设置的。 最大执行时间的长短由lua-time-limit选项来控制(以毫秒为单位),可以通过编辑redis.conf文件或者使用CONFIG GET和CONFIG SET命令来修改。 在流水线请求的上下文中使用EVALSHA命令时,要特别小心,因为在流水线中,必须保证命令的执行顺序。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
redis学习笔记redis 是一个开源的 key-value 数据库。它又经常被认为是一个数据结构服务器。 因为它的 value 不仅包括基本的 string 类型还有 list,set ,sorted set 和 hash 类型。当 然这些类型的元素也都是 string...
二、 redis学习笔记之数据类型 3 三、 redis学习笔记之排序 11 四、 redis学习笔记之事务 16 五、 redis学习笔记之pipeline 20 六、 redis学习笔记之发布订阅 23 七、 redis学习笔记之持久化 28 八、 redis学习笔记...
Redis学习笔记
### 超详细的Redis学习笔记知识点汇总 #### 1. Redis 的启动与停止 ##### 1.1 直接启动 Redis 服务 - **默认端口启动**:使用 `$ redis-server` 命令,默认监听端口为 `6379`。 - **指定端口启动**:使用 `$ ...
这个“redis学习笔记.zip”压缩包很可能是包含了关于Redis的学习资料,可能包括概念解释、操作教程、实践案例等内容,适合初学者和有一定基础的学习者参考。 Redis的学习可以分为以下几个主要部分: 1. **基础知识...
Redis学习笔记 Redis是基于键值对存储的NoSQL数据库,可以用来存储和检索数据。下面是Redis的基础知识点: 基础命令 * set key value:保存一个数据,重复set相同的key只会保存最新的value * get key:获取一个...
### Redis 学习笔记知识点概览 #### 一、Redis 概述与应用场景 ##### 1.1 NoSQL 数据库简介 - **定义**: NoSQL(Not Only SQL)泛指非关系型数据库,它们通常不使用传统的表格关系来存储数据。 - **特性**: NoSQL ...
Redis学习笔记 Redis是一个开源的基于键值对(Key-Value)NoSQL数据库,使用ANSI C语言编写、支持网络、基于内存但支持持久化。性能优秀,并提供多种语言的API。Redis可以被称为KV数据库,键值对数据库,内部存储...
在本“Redis学习笔记-包括周阳和狂神说”中,我们将深入探讨Redis的核心概念、功能特性以及实际应用。 1. Redis基本概念 - 键值对:Redis的核心数据结构,键是唯一的标识,值可以是多种类型,如字符串、哈希、列表...
Redis还支持主从复制和哨兵机制(Sentinel),前者可以实现数据的同步备份,后者则用于管理多个Redis服务器,实现故障转移。Redis集群的建立和管理可以进一步提升数据库的高可用性和扩展性,支持数据分片和负载均衡...
Redis学习笔记
redis学习笔记整理 一、 redis 环境搭建 2 二、 redis学习笔记之数据类型 3 三、 redis学习笔记之排序 11 四、 redis学习笔记之事务 16 五、 redis学习笔记之pipeline 20 六、 redis学习笔记之发布订阅 23 七...
本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...
这份2022年的Redis学习笔记涵盖了Redis的基础概念、核心特性、使用场景以及最佳实践。 一、Redis简介 Redis是一个开源(BSD许可)的,非关系型、内存中的数据结构存储系统,可以用作数据库、缓存和消息中间件。它...