Redis命令,参考链接:
http://redis.io/commands
https://redis.readthedocs.org/en/latest/
======== Key ========
>DEL key [key ...]
删除一个或多个key,返回删除的数量。
>KEYS pattern
查找匹配pattern的key,返回相应的key列表。
注:如果数据库很大,效率不会很高。
>RANDOMKEY
从当前数据库中随机返回一个key(不删除),如果数据库为空,返回nil。
>TTL key
TTL是”Time To Live”的缩写,返回key的存活时间,单位是秒,如果key不存在,或者key过期,或者key没有设置存活时间,返回-1。
>PTTL key
类似TTL,只是以毫秒为单位。
>EXISTS key
查看key是否存在,存在返回1,不存在返回0。
>MOVE key db
移动当前数据库的key到指定的数据库中,如果当前数据库没有key,或者指定的数据库有key,MOVE失败,成功返回1,失败返回0。
>RENAME key newkey
将key改名为newkey,如果newkey存在,用key的值覆盖newkey的值。
如果key和newkey相同,或者key不存在,返回错误,如果成功,返回OK。
>RENAMENX key newkey
类似RENAME,如果newkey不存在,将key改名为newkey。
如果key不存在,返回错误,如果newkey存在,返回0,如果成功,返回1。
>TYPE key
返回key存储的值的类型,可能为none(key不存在)、string、list、set、zset、hash。
>EXPIRE key seconds
给key设置存活时间,当key过期了,它会被自动删除。
带有存活时间的key称为可挥发的(volatile),没有存活时间的key称为持久化的(persistent)。
如果使用DEL删除整个key,或者SET和GETSET覆写(overwrite)整个key,可以移除存活时间。如果只是修改它的值而不是用新值代替,存活时间依旧如故,比如INCR、LPUSH、HSET等。
如果使用RENAME对key进行改名,改名后的key的存活时间和改名前的一样,即使改名后的key本身已经存在并且有存活时间,都会被覆盖掉。
如果使用PERSIST,可以移除存活时间,重新变成持久化的。如果key本身有一个存活时间,重新使用PERSIST后,新的存活时间会取代旧的存活时间。
如果key不存在,返回0,如果设置成功,返回1。
>PEXPIRE key milliseconds
类似EXPIRE,只是以毫秒为单位。
>EXPIREAT key timestamp
类似EXPIRE,只是接受的时间参数为UNIX时间戳,单位是秒,如1355292000,意思是在2012年12月12日过期。
>PEXPIREAT key timestamp(milliseconds)
类似EXPIREAT,只是UNIX时间戳的单位是毫秒,如1355292000000,比原来多了三位数。
>PERSIST key
移除key的存活时间,使得key从可挥发的变为持续化的,使得key永不过期。
如果key不存在,返回0,如果设置成功,返回1。
>SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]
默认为数字,解释为双精度浮点数,从小到大进行排序。
如果值为字符串,使用ALPHA修饰符进行排序。
如果设置了!LC_COLLATE环境变量,可以识别UTF-8编码。
返回的有序列可以通过LIMIT修饰符进行限制起始元素和个数。
使用外部key进行排序,如SORT user_id BY user_level_* DESC GET # GET user_name_* GET user_password_*。
使用不存在的key进行排序,只获取对象而不排序,如SORT user_id BY no_exist_key GET # GET user_name_* GET user_password_*。
保存排序结果,如… STORE user_info_sorted_by_level。
在GET和BY中使用哈希表,如SORT user_id BY *->serial。
如果没有STORE参数,返回排序结果的列表形式,如果有STORE参数,返回排序结果的元素个数。
>OBJECT subcmd [args [args]]
查看给定key的Redis对象的内部信息。
OBJECT REFCOUNT <key> 返回被引用的次数。
OBJECT ENCODING <key> 返回key对应的value的内部表示。string编码有raw和int,list编码有linkedlist和ziplist,set编码有hashtable和intset,hash编码有hashtable和zipmap,zset编码有skiplist和ziplist,前者是通用类型,后者是特殊编码类型。当特殊编码类型不能满足随后的需求时,会自动转为通用类型。
OBJECT IDLETIME <key> 返回空转的时间(没有被读写),以秒为单位。
>MIGRATE host port key destination-db timeout
将key从当前实例转移到目标实例中,原子操作,执行时会阻塞进行迁移的两个实例,直到迁移成功,迁移失败,或等到超时为止。
timeout参数以毫秒为单位,是指当前实例和目标实例进行沟通的最大间隔时间,而不是整个操作的最大执行时间。
如果传送数据时发生IO错误,或超时,返回IOERR错误,如果迁移成功,返回OK。
>DUMP key
对key对应的值进行序列化,序列化值不包括任何存活时间信息,使用RESTORE命令可以对该值进行反序列化。
如果key不存在,返回nil,如果成功,返回序列化值。
>RESTORE key ttl serialized-value
对序列化值进行反序列化,并将它和给定的key关联起来。
ttl参数以毫秒为单位,为key设置存活时间,如果为0,不设置存活时间。
RESTORE在反序列化前,先对序列化值的RDB版本和数据校验进行检查,如果RDB版本不同或数据不完整,返回错误,如果反序列化成功,返回OK。
======== String ========
>SET key value
把字符串值value和key关联起来,总是返回OK。
>SETNX key value
类似SET,如果key不存在,进行关联动作,返回1,如果key已经存在,不做任何动作,返回0。
>SETEX key seconds value
类似SET,同时设置key的存活时间(单位是秒),相当于一个SET操作加一个EXPIRE操作,不同的是,SETEX是原子操作。
如果seconds参数不合法,返回错误,如果成功,返回OK。
>PSETEX key milliseconds value
类似SETEX,只是key的存活时间以毫秒为单位。
>SETRANGE key offset value
用value覆写key对应的值在偏移量offset开始的地方,对于不存在的key,作空字符串处理,对于key对应的值原来的长度小于偏移量,空白部分用零比特(“\x00″)填充,返回修改后字符串的长度。
有了SETRANGE和GETRANGE命令,可以把Redis字符串当作是具有O(1)随机访问时间的线性数组,这是非常快速高效的存储方式。
>MSET key value [key value ...]
同时设置多个键值对,原子操作,总是返回OK。
>MSETNX key value [key value ...]
类似MSET,当且仅当所有key都不存在,原子操作,如果至少有一个key已经存在,失败返回0,如果成功,返回1。