阅读更多
Redis
目录
EXPIRE、timeout、TTL(time to live)区别
EXPIRE 过期时间
timeout 超时时间
TTL 生存时间
其实都指的是过期时间。
命令
Redis提供了大量的命令操作。目前总共约197个命令。
APPEND
追加操作。如果key存在并且是个字符串,该命令操作在后面进行追加;如果key不存在,则会先创建这个key并将值设置为空字符串。这种情况下类似SET命令操作。
APPEND key value
APPEND timeseries "fixed-size sample"
AUTH
请求受密码保护的Redis服务器的认证。在允许客户端执行命令操作之前,Redis要求进行密码认证。这是通过配置文件中的requirepass指令来实现的。
AUTH password
BGREWRITEAOF
通知Redis启动一个AOF(Append Only File, 只追加文件)重写过程。该重写过程将基于当前AOF(Append Only File, 只追加文件)创建一个小的优化版本。如果BGREWRITEAOF命令操作失败,不会出现数据丢失,老的AOF(Append Only File, 只追加文件)将保持原样。如果没有后台进程做持久化,重写过程只由Redis触发。
BGREWRITEAOF
COMMAND
COMMAND
返回Redis支持的所有命令的详细信息。
EXISTS
EXISTS key [key ...]
返回该key是否存在。
EXPIRE
EXPIRE key seconds
设置key的过期时间,以秒为单位。过期后,该key及对应的值将自动被删除。
过期时间只会被删除或者更新操作清除,如 DEL, SET, GETSET 以及所有 *STORE命令操作。
当通过PERSIST命令将一个key转为持久key时,过期时间也会被清除。
如果使用RENAME命令重命名一个key时,该key关联的TTL生存时间将被传给新的key。
如果使用RENAME命令覆盖更新一个key,如:
存在一个key: key_a,使用RENAME key_b key_a覆盖更新key_a后,不管key_a有没有关联的过期时间,新的key_a将继承key_b的特性。
EXPIREAT
EXPIREAT key timestamp
类似EXPIRE命令。通过指定一个unix时间戳来设置过期时间,以秒为单位,表示从1970年1月日到现在的秒数。
FLUSHALL
FLUSHALL
从所有DB中删除所有的key,不只是当前选择的DB。执行该命令不会失败。
FLUSHDB
FLUSHDB
从当前选择的DB中删除所有的key。执行该命令不会失败。
GET
GET key
读取操作,只用于读取字符串。如果key不存在,返回null。如果读取key对应的值不是字符串,返回错误。
GETSET
GETSET key value
原子操作,将key对应的值设置为新值,通过返回更新前的旧的值。如果key存在,但设置的值不是个字符串,则返回错误。
HGET
HGET key field
返回哈希key中关联field的值。如果哈希key不存在或者哈希key中不存在field,返回null。
HSET
HKEYS key
返回指定哈希(key)中所有的field字段(key)
HLEN
HLEN key
返回指定哈希(key)中field的个数。
HMGET
HMGET key field [field ...]
返回指定哈希(key)中关联field的值,如果其中某个field字段不存在,对应的返回值为null。
一个不存在的哈希(key)被处理为空哈希,所以如果哈希(key)不存在, HMGET 返回一个null列表。
HMSET
HMSET key field value [field value ...]
向哈希(key)中set一组field及对应的值。如果某个field已存在,则覆盖对应的值。如果哈希(key)不存在,将创建一个哈希(key)。
HSET
HSET key field value
哈希key set操作,该key对应一个哈希结构。在该哈希key中插入一个key为field,value为指定值的key/value。如果该哈希key不存在,则创建一个哈希key,如果field已经存在,则覆盖原来的值。
HSETNX
HSETNX key field value
尽当哈希(key)中不存在指定field时,向哈希(key)中set该field及关联值。如果哈希(key)不存在,将创建一个哈希(key)。如果该field已存在,则HSETNX 命令不产生影响。
HSTRLEN
HSTRLEN key field
返回哈希(key)中指定字段对应值的字符串长度。如果哈希(key)或field不存在,返回0.
HVALS
HVALS key
返回哈希(key)中所有关联的值。如果哈希(key)不存在,则返回空列表。
INCR
INCR key
将key对应的值加1.
INCRBY
INCRBY key increment
将key对应的值加上指定数值。如果key不存在,则在执行此操作之前,将该key设置为0.如果该key对应值为非法类型或是个字符串(不能表示一个整型数),则返回错误。该操作只能限制在64位有符号整型数上使用。
INCRBYFLOAT
INCRBYFLOAT key increment
同INCRBY类似,针对浮点数。
SET
SET key value [EX seconds] [PX milliseconds] [NX|XX]
设置key并关联一个字符串。如果该key已经关联一个值,则进行覆盖更新而不管其类型。SET操作执行成功后,之前该key关联的TTL生存时间不再有效。
参数选项
从Redis 2.6.12开始支持一些参数设置
EX seconds 设置过期时间,以秒为单位
PX milliseconds 设置过期时间,以毫秒为单位
NX 只用于当key不存在时,设置key并关联到某个值。
XX 只用于到key存在时,设置key并关联到某个值。
SETEX
SETEX key seconds value
设置key并关联到某个值,同时指定一个过期时间,以秒为单位。该操作等同于:
SET mykey value
EXPIRE mykey seconds
SETNX
SETNX key value
尽用于如果key不存在,设置key并关联到某个值。如果该key已经关联一个值,则不执行任何操作。
TTL
TTL key
返回剩余的生存时间(TTL, time to live)
http://redis.io/commands
http://redis.io/topics/rdd
http://redis.io/topics/protocol