Redis---学习笔记(更新中)
一.基本命令
- #查看所有键
- keys *
- #查看指定键
- keys key
- #查看模糊键
- keys ke*
- keys ke?
- keys ke[a-z]
- keys ke\?
- #判断键是否存在
- exists key
- #查看键类型
- type key
- #清空所有
- flushall
二.数据类型相关命令
1.字符串:key尽量用【对象类型:属性:值】的规则命名
- # 增/改
- set key
- mset k1 k2 k3
- # 删
- del key
- del k1 k2 k3
- # 查
- get key
- mget k1 k2 k3
- # 统计
- strlen key
- # 加1
- incr key
- # 加n
- incr key n
- # 增加内容(key不存在会创建)
- append key xxx
2.散列:由键 字段 值 组成
- # 增:把一条用户信息保存为散列数据
- hset user name Tom
- hset user age 20
- # 改:名字存错了,重新存
- hset user name Haha
- # 查:查看结果
- hget user name
- # 检查name字段是否存在:如果user中没有name,上一步会报错
- hexists usr name
- # 忘记user中还有哪些字段?
- hkeys user
- hvals user
- # 删掉user中的age
- hdel user age
- # 删掉整个user
- del user
- # 在加一条数据,但是之前的增加数据太麻烦了?
- hmset user name tom age 20
- # 查看数据
- hmget user name age
- # 上面的查看数据还是太麻烦?
- hgetall user
- # 年纪加10岁
- hincrby user age 10
3.列表:双向链表,适合快进快出
- # 增
- lpush number 1 2 3 4 5
- # 查
- lrange number 0 -1 #从第一个索引查询到最后一个索引
- lindex number 0 # 查询指定索引的值
- # 改
- lset number 0 9 # 把列表中的索引为0的值改成9
- linsert number before 9 111 # 在9的前面插入111
- linsert number after 9 222 # 在9的后面插入222
- # 删
- lpop number
- rpop number
- lrem number count value
- ltrim number0 9
- # 把source列表的最后一个元素添加到dest列表的左边
- rpoplpush source dest
- # 统计
- llen number
4.集合
- # 增/改
- sadd myset h j k
- # 查
- smembers myset
- # 删
- spop myset
- del myset
- # 统计
- scard myset
- # 随机取一个
- srandmenber myset
- # 交集
- sinter set1 set2
- # 并集
- sunion set1 set2
- # 差集
- sdiff set1 set2
- sdiffstore storeset set1 set2
5.有序集合
- # 增/改
- zadd userscore 100 h1 200 h2 50 h3 30 h4 70 h5
- zadd userscore 120 h6
- # 查
- zrange userscore 0 -1
- zscore userscore h1
- zrange userscore 0 3 # 按照分数从小到大排序返回索引 0-3 中的元素
- zrange userscore 0 3 withscores
- zrangebyscore userscore 10 50 # 按照分数从小到大排序返回分数为 10-50 中的元素
- zrangebyscore userscore 10 50 withscores
- zrangebyscore userscore 10 50 withscores limit 1 3
- zrevrange # 用于倒序
- zrevrangebyscore # 用于倒序
- # 删
- zrem userscore h1 h2
- zremrangebyrank userscore 1 2 # 删除排名1到2的元素
- #统计
- zcard userscore
- zcount userscore 10 20 统计指定范围分数内的元素个数
- #加减分
- zincrby usrscore -50 h1
三.事务
- multi
- ...
- exec
四.生存时间
- # 只有set操作会影响生存时间
- # 设置过期时间
- set name tom
- expire name 10
- expireat name 时间戳
- # 剩余过期时间
- ttl name
- # 毫秒级
- pexpire name 3000
- pexpireat name 毫秒时间戳
如何限制redis的最大内存使用和删除策略
五.排序
sort命令
六.消息通知
1.队列:
好处:松耦合,易扩展
实现:
- # 伪代码
- lpush tasks t1
- loop
- task = rpop tasks
- if task
- exec task
- else
- wait 1 second
优先级实现:
- /**
* 伪代码- * brpop 是一个会阻塞的命令,可以接受多个键 最后一个参数表示超时时间,0则不超时
- * 如果三个任务键都没有数据,程序会一直阻塞,一旦其中有一个键有数据,程序就会执行,此特性可以实现优先级。那个任务要优先执行,就推送一下,程序就会立刻执行那个任务
- */
- lpush one_tasks t1
- lpush two_tasks t2
- lpush three_tasks t3
- loop
- task = brpop one_tasks two_tasks three_tasks 0
- exec task
2.发布/订阅:
- # redis实例---发布
- publish channel.a hihihi
- #redis实例---订阅
- subscribe channel.a
七.管道
八.管理(持久化 主从 管理工具 安全)
Redis---学习笔记(更新中)的更多相关文章
- Python3学习笔记-更新中
1.Python概况 2.Anaconda安装及使用 3.Pycharm安装及使用 4.Hello World!!! 5.数据类型及类型转换 6.分支结构 7.循环语句 8.异常
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记一:数据结构与对象
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...
- Redis学习笔记(三)Redis支持的5种数据类型的总结
继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...
- Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash
引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...
- Redis学习笔记(2)——Redis的下载安装部署
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...
- redis学习笔记(2)
redis学习笔记第二部分 --配置文件介绍 二,解析redis的配置文件redis.conf常见配置参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通 ...
- Redis学习笔记4-Redis配置具体解释
在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redi ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
随机推荐
- 4 DDD里面的界限上下文
1 界限上下文概念的出现 当开发一个电子商务系统的时候,会给系统划分很多子域,销售子域是核心子域,此外还有物流子域,商品子域等支撑子域.在这些子域里面,一个商品product在销售子域和商品子域里面外 ...
- C ++ 17 技术上已经完成,C ++ 20 也在路上(有路线图)
在前不久结束的冬季 ISO C ++标准会议(Kona)上,C ++ 17 宣布在技术上已完成,仅剩下一些 ISO 相关的繁文缛节,即将提交至最终的 ISO 投票表决.该会议由 Plum Hall 和 ...
- 脚本 启动/停止 jar包服务
windows (.bat): @set port=8692 @echo %port% for /f "tokens=5" %%i in ('netstat -aon ^| fin ...
- rc-form(翻译)
原地址:https://npm.taobao.org/package/rc-form rc-form React 高阶表单控制组件. 开发 npm install npm start op ...
- web开发中../、./、/的区别
原文:web开发中../.././的区别 最近在业余时间慢慢玩起了网站开发,觉得挺有意思的.在开发过程中,老是分不清 ../.././三者之间的区别,也老是弄混,最后仔细搜索研究了一下,现在终于懂了. ...
- windows下启动redis
解决方案 使用现成的基于windows的redis程序 github上有许多封装好的基于windows的redis程序,可以直接使用,但是版本更新不及时比如: https://github.com/M ...
- “Rsync” could not be found on your PATH
Vagrant with VirtualBox on Windows10: “Rsync” could not be found on your PATH 使用agrant安装系统时,遇到的错误提示: ...
- Windows 10开发基础——指针事件和操作事件(一)
主要内容: 1.指针事件 2.操作事件 1.指针事件 指针事件由各种活动输入源引发,包括触摸.触摸板.笔和鼠标(它们替代传统的鼠标事件).指针事件基于单一输入点(手指.笔尖.鼠标光标),但不支持基于速 ...
- C、C++笔记
2017年6月 阅读书籍<C和指针> #if 0 #endif 比注释掉代码好.(<C和指针>2017.06.07) 全局变量和全局静态变量的区别 1)全局变量是不显式用sta ...
- 微信小程序把玩(十一)icon组件
原文:微信小程序把玩(十一)icon组件 这些是提供的所支持的图标样式,根据需求在此基础上去修改大小和颜色. 主要属性: 使用方式: wxml <!--成功图标--> <icon t ...