文档章节

redis学习笔记一

 独特55
发布于 2016/03/04 15:42
字数 1673
阅读 46
收藏 4

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对结果进行缓存

 


© 著作权归作者所有

粉丝 1
博文 10
码字总数 9543
作品 0
松江
私信 提问
Lind.DDD.Repositories.Redis层介绍

之前已经发生了 大叔之前介绍过关于redis的文章,有缓存,队列,分布式pub/sub,数据集缓存以及仓储redis的实现等等,而今天在Lind.DDD的持久化组件里,redis当然也有一席之地,作为当今最红...

mcy247
2017/12/07
0
0
redis学习笔记(三)之其他命令和特性

redis学习笔记(一)之安装测试 redis学习笔记(二)之数据类型 一、基本特性 1、reids 默认端口:6379; 2、默认支持16个数据库,建立连接后自动选择0号数据库,建议不同的应用使用不同的r...

憨豆公子
2016/08/19
21
0
redis学习笔记(一)之安装测试

以前比较懒,虽说都用redis,但大都是别人部署好后进行简单的使用,最近项目上线,时间较空,所以想在系统的学习一下redis,顺便也能熟悉熟悉linux系统(linux小白,也是正在学习阶段,如果有...

憨豆公子
2016/08/08
19
0
《Redis in action》读书笔记

https://www.gitbook.io/book/abcfy2/redis-in-action-reading-notes 最近在学习redis,正在看这本书,以笔记的形式记录下这本书,方便以后翻阅。 这本书介绍很不错,入门很值得参考,图文并...

Feng_Yu
2014/09/27
0
0
Redis学习笔记之安装(一)

Redis 下载 1.1 下载地址 http://redis.io/download 1.2 版本 redis-3.2.3.tar.gz 2. Redis 安装 2.1 拷贝安装包 拷贝安装包到Linux系统中的/opt目录下 2.2 解压安装包 /opt目录下,解压命令...

残风vs逝梦
2016/08/07
49
0

没有更多内容

加载失败,请刷新页面

加载更多

非webpack require.js + vue + vueRouter + iView 实现按需加载

适合一个人开发的时候,在整个php框架下,又想单页,又可以直接后端assign变量穿透到模板。又不想写接口搞前后分离脚手架一大堆npm 包, 在php模板下 引入require.js <!DOCTYPE html><html...

一箭落旄头
16分钟前
6
0
新特性解读 | MySQL 8.0 窗口函数详解

原创作者: 杨涛涛 背景 一直以来,MySQL 只有针对聚合函数的汇总类功能,比如MAX, AVG 等,没有从 SQL 层针对聚合类每组展开处理的功能。不过 MySQL 开放了 UDF 接口,可以用 C 来自己写UDF...

爱可生
21分钟前
3
0
23.5 jumpserver介绍

23.5 jumpserver介绍 开源堡垒机jumpserver介绍: 官网www.jumpserver.org Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业高效 用户、资产、权限、审计 管理 Auth...

oschina130111
28分钟前
3
0
Spring Cloud 入门教程(七): 消息总线(Spring Cloud Bus)(Greenwich.RELEASE)

参考网址:https://blog.csdn.net/forezp/article/details/81041062,由于此文中作者基于git和rabbitMq,为了适应内网我改造为基于mysql和kafka 一、准备工作 1、安装kafka 参考这个:kafka...

pipi1919
29分钟前
1
0
用人工智能改变企业与客户的连接方式

  随着以AI人工智能技术为主的新一代信息技术的快速商业化落地,我国的数字经济正高歌猛进。2017年我国数字经济对GDP的贡献率为55%,接近甚至超越了某些发达国家水平,2018年我国数字经济规...

琴殇的
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部