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 ...
随机推荐
- delphi 颜色,字体保存到INI文件
颜色转换成整型保存{也可以用ColorToString / stringTOColor}字体用下面的函数转换成字符串,然后保存 unit xFonts; interface uses Classes ...
- 【转】mac版微信web开发者工具(小程序开发工具)无法显示二维码 解决方案
转自:https://www.cnblogs.com/stevenluo/p/6030445.html 微信小程序概念的提出,绝对可以算得上中国IT界惊天动地的一件大事,这可能意味着一场新的开发热 ...
- 微信公众平台中临时二维码的scene_id为32位非0整型
原文:微信公众平台中临时二维码的scene_id为32位非0整型 微信公众平台中临时二维码的scene_id为32位非0整 ...
- ADO.net Connection对象简介
Connection对象 学习的是刘皓的文章 ADO.NET入门教程(四) 品味Connection对象 这篇文章开始水平一般起来了,主要介绍了要优雅的使用这个对象 1 用try...catch.. ...
- Oracle 如何删除掉一个用户下的所有对象
create or replace procedure drop_all as cursor cur_obj is select uo.OBJECT_NAME, uo.OBJECT_TYPE from ...
- WPF 实现跑马灯效果的Label控件,数据绑定方式实现
原文:WPF 实现跑马灯效果的Label控件,数据绑定方式实现 项目中需要使用数据绑定的方式实现跑马灯效果的Label,故重构了Label控件:具体代码如下 using System; using S ...
- 实现:C#窗体中的文本框只能输入中文汉字,其他输入无效。问:正则表达式怎么用?
原文:实现:C#窗体中的文本框只能输入中文汉字,其他输入无效.问:正则表达式怎么用? private void textBox1_KeyPress(object sender, KeyPressEve ...
- C# HttpWebResponse下载限速
在使用HttpWebResponse请求网络内容的时候,一般如下面这种方法: code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // 非生产环境代码,请在实际使用时进行 ...
- 所有语言的Awesome(2)
Curated list of awesome lists https://awesomeweekly.co https://github.com/sindresorhus/awesome ✨ Pre ...
- epplus输出成thml
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...