redis-server 即启动redis的服务器
redis-cli 启动redis自带的客户端
redis-cli SHUTDOWN
EXISTS bar 判断键值是否存在(返回值1 存在,0 不存在)
DEL bar 删除一个或多个键(返回值是删除的键的个数)
INCR num 使当前键值递增(存储的键值是整数时,递增;非整数时,提示错误)
原子操作:不可拆分的意思,即不会在执行的过程中被其他的命令插入打断
INCRBY bar 2 命令与INC基本一样,只不过可以指定增加的数值
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时需注意:
1、尽量减少待排序键元素的数量
2、使用LIMIT只获取需要的数据
3、如果排序的数据量较大,尽量使用STORE对结果进行缓存