redis学习笔记一

Redis启动

两个常用的redis启动命令

redis-server       即启动redis的服务器

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

 

停止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              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时需注意:

1、尽量减少待排序键元素的数量

2、使用LIMIT只获取需要的数据

3、如果排序的数据量较大,尽量使用STORE对结果进行缓存

 


你可能感兴趣的:(redis)