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 ...
随机推荐
- LaTeX —— 特殊符号与数学字体
1. 特殊符号 ℓ(\ell):用于和大小的 I 和 数字 1 相区分 R(\Re) ∇(\nabla):微分算子 2. 数学字体 mathbb:blackboard bold,黑板粗体 mathca ...
- Modbus TCP 示例报文
调试modbus tcp 整理百度文库文档如下 <modbus-tcp-报文举例分析> <MODBUSTCP通讯报文> Client request: 19 B2 00 00 ...
- MFC和Qt优缺点 (MFC几乎没有优点、全面下风)
在网上看到的,拿来和大家一起讨论下. 我曾经使用过来开发过软件,我想和大家分享我使用他们时所体会的不同之处. 我并非一个职业作家,这篇文章可能看起来不如专业的杂志和网站上的那么条理清晰.但是,我在这里 ...
- Kafka Offset 1
Kafka Offset Storage 1.概述 目前,Kafka 官网最新版[0.10.1.1],已默认将消费的 offset 迁入到了 Kafka 一个名为 __consumer_offse ...
- Next Instruction Access Intent Instruction
Executing a Next Instruction Access Intent instruction by a computer. The processor obtains an acces ...
- java学习笔记(2)——函数
int a = 1; a = a++; 1,取出a的值1作为a++表达式的值(a++表达式等于1) 2,a增加1变为2 3,执行赋值运算,a++表达式的值再赋给a,a又成为了1. ---------- ...
- WPF 路由事件 Event Routing
原文:WPF 路由事件 Event Routing 1.路由事件介绍 之前介绍了WPF的新的依赖属性系统,本篇将介绍更高级的路由事件,替换了之前的.net普通事件.相比.net的事件,路由事件具有更强 ...
- WPF 透明掩码 OpactiyMask
原文:WPF 透明掩码 OpactiyMask 在WPF中提供了Opacity属性使得元素的所有内容都是透明的.而OpacityMask属性可以使元素的特定区域变成透明. OpacityMask属性接 ...
- c# 守护进程,WPF程序自守护
原文:c# 守护进程,WPF程序自守护 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/79035246 如何 ...
- asp.net (webapi) core 2.1 跨域配置
原文:asp.net (webapi) core 2.1 跨域配置 官方文档 ➡️ https://docs.microsoft.com/zh-cn/aspnet/core/security/cors ...