参考资料
redis服务相关
redis启动
$ redis-cli # 本地启动链接
$ redis-cli -h host -p port -a password #远程启动
验证密码是否正确
$ AUTH password
打印字符串
$ ECHO message
查看服务是否运行
$ PING
关闭当前连接
$ QUIT
切换指定数据库
$ SELECT index
redis key命令
删除给定的一个或多个key,不存在的key会忽略掉
$ DEL key [key ...] # 返回被删除key的数量
检查给定的key是否存在
$ EXISTS key # 存在返回1,否则返回0
设置key的过期时间
$ EXPIRE key time # 设置成功返回1
设置key指定的过期时间
$ EXPIREAT key timestamp # 设置成功返回1,key不存在或者无法设置,返回0
查找所有符合给定模式pattern的key
$ KEYS * # 匹配数据库中所有key
$ KEYS h?llo # 匹配hello, hallo和hxllo等
$ KEYS h*llo # 匹配hllo,heeeeeello等
$ KEYS h[ae]llo # 匹配hello,hallo,但是不匹配hxllo
移除给定key的生存时间,使其变成永久的key
$ PERSIST key # 成功返回1,当key不存在或者key未设置ttl时返回0
返回key的剩余生存时间
$ PTTL key # 以毫秒返回key的剩余生存时间,当key不存在时返回-2,key没有设置过期时间返回-1
$ TTL key # 以秒返回key的剩余生存时间,同上
从当前数据库随机返回一个key,但是不删除
$ RANDOMKEY # 当数据库为空时,返回nil
重命名key的名字
$ RENAME key newkey # 失败会返回错误,如no such key,当newkey存在时,将覆盖key
$ RENAMENX key newkey # 当newkey存在时,会返回错误
对列表、集合、有序集合key中元素进行排序
$ SORT key # 返回从小到大的结果
$ SORT key desc # 返回从大到小的结果
获取key的类型
$ TYPE key
# none(key不存在)
# string(字符串)
# list(列表)
# set(集合)
# zset(有序集合)
# hash(哈希表)
游标方式获取key
$ SCAN 0 # 从游标为0的位置开始获取key,返回值会返回之后游标的位置
$ SCAN 0 MATCH h*llo # 可以通过match的方式返回匹配的元素
string(字符串)
追加value到key原有值的结尾
$ APPEND key value # 返回当前key的长度
设置bit位以及获取被设置bit位数量
$ SETBIT key offset value # 设置当前offset的bit位为1
$ BITCOUNT key [start end] # 获取当前key设置过1的数量
对key中存储的数据进行加或者减操作
$ DECR key # 返回当前存在的值,减1
$ DECRBY key decrement # 返回当前存在的值,减去decrement
$ INCR key # 对key进行加1操作
$ INCRBY key increment # 返回当前存在的值,加上increment
$ INCREBYFLOAT key float # 对当前key加上一个flaot值,但是会有很多小数
对字符串数据进行设置和获取
$ SET key value # 设置一个key的值
$ GET key #获取key的值
获取key的值在start和end之间的值
$ GETRANGE key start end
将给定的value设置到key,并且返回key之前的值
$ GETSET key value
设置一个key,含有过期时间,但是是毫秒
$ PSETEX key milliseconds value
设置一个key,含有过期时间,但是是秒
$ SETEX key seconds value
返回value的长度
$ STRLEN key
set if not exists如果不存在则写入,返回1或0
$ SETNX key value
同时获取多个值
$ MGET key[key...]
同时设置多个key和值
$ MSET key value[key value...]
原子性操作,要么都一起设置成功,要么都一起设置失败
$ MSETNX key value[key value...]
Hash(哈希表)
删除哈希表key中一个或多个指定域,不存在将被忽略,成功返回被删除数量
$ HDEL key field [field...]
检查哈希表key中,给定域field是否存在,存在返回1,不存在返回0
$ HEXISTS key field
获取哈希表key中,给定的域field
$ HGET key field
获取哈希表key所有域和值
$ HGETALL key
对哈希表key中指定的域field值上加上增量increment
$ HINCRBY key field increment
对哈希表key中指定的域field值上加上浮点数increment
$ HINCRBYFLOAT key field incrment
返回给定哈希表key中所有的域field
$ HKEYS key
返回给定哈希key中所有与field的数量
$ HLEN key
返回哈希表key中一个或多个给定域的值
$ HMGET key field [field...]
将多个field-value对设置到哈希key中
$ HMSET key field value [field value ...]
将哈希表key中域field设置值为value
$ HSET key field value
将哈希表key中域field设置值为value,当且仅当field不存在,如果存在则操作无效
$ HSETNX key field value
返回哈希表key中所有域的值
$ HVALS key
列表(list)
弹出多个队列的值,阻塞式
$ BLPOP key [key...] timeout
向前弹出多个队列的值,阻塞式
$ BRPOP key [key...] timeout
返回key中位于index的值,0开始,-1为倒数第一个
$ LINDEX key index
插入一个值到key的某一个值之前或之后,如果这个值没找到,则不插入
$ LINSERT key BEFORE|AFTER pivot value
返回key有多少个值
$ LLEN key
移除表头的值,并返回该值
$ LPOP key
将一个或多个值插入到key的表头
$ LPUSH key value [value...]
从key1表尾弹出一个值,并插入到key2表头,只是阻塞版本
$ BRPOPLPUSH key1 key2 timeout
将一个值插入到key中,当且仅当key存在的情况下
$ LPUSHX key value
获取指定区间的值,-1表示最后一个
$ LRANGE key start end
移除与value相等的值,当count>0,表头开始搜索,count<0,表尾开始搜索,count=0,移除全部
$ LREM key count value
设置指定index的值,覆盖
$ LSET key index value
删除指定区间以外的值
$ LTRIM key start end
从表尾弹出一个值
$ RPOP key
从key1结尾弹出一个值返回,并添加到key2表头
$ RPOPLPUSH key1 key2
从表尾插入一个值
$ RPUSH key value [value...]
从表尾插入一个值,当且仅当key存在的时候
$ RPUSHX key value
集合(Set)
将一个或者多个值添加到集合中,重复的值将会被忽略掉
$ SADD key value [value...]
返回key中队列的元素数量
$ SCARD key
返回队列key所有的值
$ SMEMBERS key
返回所有集合的差集,目前看来是第一个key在其他key中不存在的值
$ SDIFF key [key...]
用以上SDIFF对比差集之后,存储到destination这个集合中去
$ SDIFFSTORE destination key [key...]
返回几个集合的交集,假设有一个是空集,那么返回的也是空集
$ SINTER key [key...]
将以上用SINTER返回的交集存储到destination集合中
$ SINTERSTORE destination key [key...]
判断一个值是否是一个集合的成员
$ SISMEMBER key member
将元素从source移动到destination中去,原子性操作
$ SMOVE source destination member
移除并返回一个随机元素
$ SPOP key
返回一定数量的元素,但是不对集合进行任何删除等操作
$ SRANDMEMBER key [count]
移除集合中一个或者多个member,如果member不存在,将会被忽略
$ SREM key member [member...]
返回所有集合中的并集
$ SUNION key [key...]
返回所有集合的并集,并且存储到destination
$ SUNIONSTORE destination key [key...]
sortedset(有序集合)
添加多个member及他们的score值到集合中
$ ZADD key score member [score member...]
返回zset的member数量
$ ZCARD key
返回一个分数区间的值
$ ZCOUNT key min max
为一个member增加分数,如果不存在member,则等同于ZADD key score member
$ ZINCRBY key increment member
获取一个区间的值,通过索引,从小到大
$ ZRANGE key start stop [WITHSCORES]
获取一个区间的值,通过score,从小到大
$ ZRANGEBYSCORE key min max [WITHSCORES]
获取某个member的排名,这个排名是从小到大
$ ZRANK key member [WITHSCORES]
移除某些member
$ ZREM key member [member...]
移除特定排名的member
$ ZREMRANGEBYRANK key start stop
移除特定分数的member
$ ZREMRANGEBYSCORE key min max [WITHSCORES]
通过索引获取一个区间的值,与zrange不同的是,这个是从大到小
$ ZREVRANGE key start stop [WITHSCORES]
通过分数获取一个区间的值,与zrangebyscore不同的是,这个是从大到小
$ ZREVRANGEBYSCORE key max min [WITHSCORES]
获取某个member的排名,但是这个排名是从大到小
$ ZREVRANK key member [WITHSCORES]
返回一个member的score
$ ZSCORE key member
合并几个key的zset,查见文档,太难看懂,也用的不多