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 ...
随机推荐
- spring boot——结合docker
spring boot——结合docker 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 liunx机器上,也可以实现虚 ...
- Android官方教程翻译(5)——设置ActionBar
Setting Up the Action Bar 设置Action Bar PREVIOUSNEXT THIS LESSONTEACHES YOU TO 这节课教你 1. Support An ...
- mysql升级到5.7时间戳(timestamp)默认值报错
原文:mysql升级到5.7时间戳报错 往数据库里创建新表的时候报错: [Err] 1067 - Invalid default value for 'updateTime' DROP TABLE I ...
- python 判断一个数为?
1. 判断一个变量是否数字(整数.浮点数)? instance('a', (int, long, float)) True isinstance('a', (int, long, float)) Fa ...
- java学习笔记(6)——序列化
一.序列化与基本类型序列化 1,将类型int转换为4byte,或将其它数据类型(如long->8byte)的过程, 即将数据转换为n个byte序列叫序列化(数据->n byte) 如:0x ...
- CefSharp For WPF自定义右键菜单栏
原文:CefSharp For WPF自定义右键菜单栏 初始化 <!--浏览器--> <cefSharpWPF:ChromiumWebBrowser Name="webBr ...
- Android自注-15-Activity生命周期
很长一段时间没有写博客,懒,感慨一下. Activity的生命周期是一块以下附图: 通过代码下面简单的介绍一下.一些内容看代码的凝视: package com.mxy; import android. ...
- 【Android先进】如何使用数据文件来保存程序
在程序,有许多方法来存储和检索数据,本文,它描述了如何使用文件系统来保存数据编程和读取操作 我直接写了一个帮助类,进行文件的写入和读取操作 /** * 用于在文件里保存程序数据 * * @author ...
- CSharp获取图形文件的读写
C#是微软发布了一个面向对象.开展对.NET Framework上述高级编程语言.并定于占领在微软开发者论坛(PDC)在首演. C#这是微软研究员Anders Hejlsberg最新成就.C#容貌Ja ...
- MEF 插件式开发 - WPF 初体验
原文:MEF 插件式开发 - WPF 初体验 目录 MEF 在 WPF 中的简单应用 加载插件 获取元数据 依赖注入 总结 MEF 在 WPF 中的简单应用 MEF 的开发模式主要适用于插件化的业务场 ...