redis-server 即启动redis的服务器redis
redis-cli 启动redis自带的客户端数组
redis-cli SHUTDOWN缓存
EXISTS bar 判断键值是否存在(返回值1 存在,0 不存在)ruby
DEL bar 删除一个或多个键(返回值是删除的键的个数)性能优化
INCR num 使当前键值递增(存储的键值是整数时,递增;非整数时,提示错误)服务器
原子操做:不可拆分的意思,即不会在执行的过程当中被其余的命令插入打断session
INCRBY bar 2 命令与INC基本同样,只不过能够指定增长的数值post
DECR bar 让键值递减性能
DECRBY bar 2 优化
APPEND key value 向键值的末尾追加value(返回字符串的总长度)
STRLEN key 返回键值的长度
MSET/MGET 与SET和GET功能相似,不过能够同时操做多个键值
MSET key1 v1 key2 v2 key3 v3
MGET key1 key2
HSET key field value
HGET key field
HMSET key field value [field value]
HMGET key field [filed]
HGETALL key
HEXISTS key car model
HSETNX 命令与HSET相似,区别在于若字段已存在,则不执行任何操做
HINCRBY person score 60
HDEL key field [filed] 能够删除一个或多个字段
HKEYS key
HVALS key
HLEN key
LPUSH key value [value…] 列表左边增长元素
RPUSH key value [value…] 列表左边增长元素
LPOP key
RPOP key
LLen numbers 获取元素个数
LRANGE key start stop 获取列表的片断,返回索引从start到stop之间的全部元素
(起始索引为0,支持负索引,-1表明最右边元素)
LREM key count value 删除列表前count个值为value的元素
(1) 当count>0时,正常操做
(2) 当count<0时,LREM会从列表右边开始删除前|count|个值为value的元素
(3) 当count=0时,删除全部值为value的元素
LINDEX key index 将列表当作数组使用,获取指定索引的值
LSET key index value
LTRIM key start end 删除指定索引范围外的全部元素
LINSERT key BEFORE|AFTER pivot value 从左到右查找值为pivot的元素,将value插入该元素
的前边或后边
PPOPLPUSH source destination 从source的右边弹出一个元素,插入destination的左边
SADD key member [member…]
SREM key member [member…]
增长或删除一个或多个元素,若键不存在,则建立,若加入元素已存在,则忽略该操做,返回值为成功加入或删除的元素数量
SMEMBERS key 获取集合中的全部的元素
SCARD key 获取集合中的元素个数
SRANDMEMBER key 随机获取一个元素
可传递参数count随机获取多个元素
count > 0时,获取count个不一样的元素
count < 0时,随机获取|count|个元素,这些元素可能相同
SPOP key 随机弹出一个元素
ZADD key score member [score member] 添加该元素和该元素的分数
ZADD testboard +inf a
ZADD testboard -inf b +inf和-inf分别表示正无穷和负无穷
ZSCORE key member 获取member的分数
ZRANGE key start stop [WITHSCORES] 按元素分数从小到大返回索引从start到
stop之间全部的元素,命令加上WITHSCORES,返回的数据格式从”元素1,元素2……元素n”变成了”元素1,分数1,元素2,分数2……元素n,分数n”
ZRANGEBYSCORE scoreboard min max 返回分数在min和max之间的元素(包括min和max)
ZRANGEBYSCORE scoreboard min (max 不包括分数为max的元素
ZRANGEBYSCORE scoreboard (min max 不包括分数为min的元素
ZREVRANGEBYSCORE scoreboard max min LIMIT offer count
ZINCRBY scoreboard 4 Jerry 增长一个元素的分数(负数为减分)
ZCARD key 获取集合中元素的个数
ZCOUNT scoreboard 90 100 获取指定分数范围内的元素个数
ZREM key member [member] 删除一个或多个元素
ZREMRANGEBYRANK testRem 0 2 删除指定索引范围内的元素
ZREMRANGEBYSCORE testRem (4 5 删除指定分数范围内的元素
ZRANK key member 按照从小到大的顺序获取指定元素的排名(从0开始)
ZREVRANK key member 按照从大到小的顺序获取指定元素的排名(从0开始)
事务是一组命令的集合,是redis最小的执行单位,是原子性的操做,要么不执行,要么都执行
MULTI
SADD “user:1:following” 2
SADD “user:2:followers” 1
EXEC
WATCH key
WATCH能够监控一个或多个键值,一旦其中一个键值被修改(或删除),以后的事务就再也不执行,一直持续到EXEC命令或UNWATCH以后。
Redis能够设置一些具备时效性的数据,到期后,Redis会自动删除该数据
SET session:29e3d uid1314
EXPIRE session:29e3d 900 900秒后session:29e3d键数据失效
TTL session:29e3d 查看剩余时间
PRESIST session:29e3d 将键恢复为永久的
SET 和GETSET命令都会在从新赋值的同时,将该键恢复为永久的
SORT命令能够对集合类型、有序集合、列表类型进行排序
SORT key 排列数字(从小到大)
SORT key ALPHA 按照字典顺序排列非数字元素
SORT key DESC (从大到小)
SORT key DESC LIMIT 1 2 (LIMIT表示跳过前offset个元素并获取以后的count个元素)
BY参数
SORT tag:ruby:posts BY post:*->time DESC 使用tag:ruby:posts上的值替换参考键
中的第一个*,并获取其值
注:1、当参考键名不包含*(为常量键名)时,SORT命令不会执行排序操做
2、若几个元素的参考键值相同,则按照其自己的值排序
3、当某个元素的参考键值不存在时,会默认参考键值是0
做用:使返回的结果再也不是元素自己的值,而是GET参数中指定的值
SORT tag:ruly:posts BY post:*->times DESC GET post:*->titile GET post:*->time
注:1、BY参数只能有一个,但GET参数能够有多个
2、若还需返回元素自己的值,可用GET #
若但愿保存排序的结果,可使用STORE参数
SORT tag:ruly:posts STORE sort.result 将排序后的结果存入sort.result键
注:STORE和EXPIRE结合使用可实现缓存排序结果的功能
当须要排序的元素个数较多时,SORT命令的性能相对较低,所以使用SORT时需注意:
一、尽可能减小待排序键元素的数量
二、使用LIMIT只获取须要的数据
三、若是排序的数据量较大,尽可能使用STORE对结果进行缓存