redis学习笔记一

Redis启动

两个经常使用的redis启动命令

redis-server       即启动redis的服务器redis

redis-cli        启动redis自带的客户端数组

 

中止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              SETGET功能相似,不过能够同时操做多个键值

                            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  获取列表的片断,返回索引从startstop之间的全部元素

                                   (起始索引为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  返回分数在minmax之间的元素(包括minmax

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命令

       WATCH key

       WATCH能够监控一个或多个键值,一旦其中一个键值被修改(或删除),以后的事务就再也不执行,一直持续到EXEC命令或UNWATCH以后。

过时时间EXPIRE

       Redis能够设置一些具备时效性的数据,到期后,Redis会自动删除该数据

SET session:29e3d uid1314

EXPIRE session:29e3d 900   900秒后session:29e3d键数据失效

TTL  session:29e3d                 查看剩余时间

PRESIST session:29e3d             将键恢复为永久的

SET GETSET命令都会在从新赋值的同时,将该键恢复为永久的

 

SORT命令

相关命令

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参数

做用:使返回的结果再也不是元素自己的值,而是GET参数中指定的值

SORT tag:ruly:posts BY post:*->times DESC GET post:*->titile GET post:*->time

1BY参数只能有一个,但GET参数能够有多个

       2、若还需返回元素自己的值,可用GET #

 

STORE参数

若但愿保存排序的结果,可使用STORE参数

SORT tag:ruly:posts STORE sort.result  将排序后的结果存入sort.result

STOREEXPIRE结合使用可实现缓存排序结果的功能

 

性能优化

       当须要排序的元素个数较多时,SORT命令的性能相对较低,所以使用SORT时需注意:

一、尽可能减小待排序键元素的数量

二、使用LIMIT只获取须要的数据

三、若是排序的数据量较大,尽可能使用STORE对结果进行缓存

相关文章
相关标签/搜索