【 Redis开发与运维】第3章 读书笔记
第3章 小功能大用处
3.1 慢查询分析
两个参数
- slowlog-log-slower-than:单位是微秒,默认是10000
- slowlog-max-lan:列表最大长度
3.2 Redis Shell
3.2.1 redis-cli
- redis-cli -r(repeat):执行多次。
- redis-cli -i(interval):每隔几秒执行一次命令。
- redis-cli -x:从标准输入读取数据作为 redis-cli 最后一个参数。
- redis-cli -c(cluster):连接 Redis Cluster 时使用。
- redis-cli -a(auth):配置了密码时使用。
- redis-cli --scan,–pattern:用于扫描指定模式的键,相当于使用 scan 命令。
- redis-cli --slave:把当前客户端拟做当前 Redis 节点的从节点。
- redis-cli --rdb:生成 RDB 持久化文件,保存在本地。
- redis-cli --pipe:用于将命令封装成 Redis 通信协议定义的数据格式。
- redis-cli --bigkeys:使用 scan 命令对 Redis 的键进行采样,从中找到内存占用比较大的键。
- redis-cli -eval:用于执行指定脚本。
- redis-cli -latency:检测网络延迟
- redis-cli -stat:实时获取 Redis 重要的统计信息。
- redis-cli --raw,–no-row:要求命令返回的结果必须是(不是)原始格式。
3.2.2 redis-server
3.2.3 redis-benchmark
3.3 Pipeline
原生批量命令与Pipeline对比:
原生批量命令 | Pipeline |
---|---|
原子性 | 非原子的 |
一个命令对应多个key | 支持多个命令 |
Redis 服务端实现 | Redis 服务端,客户端共同实现 |
不能滥用Pipeline
3.4 事务与Lua
3.4.1 事务
multi
~
~
~
exec #执行事务
discard #取消事务
watch #监听
Redis 不支持回滚功能
3.4.2 Lua 语法
3.4.3 Redis 与 Lua
eval
evalsha
Lua 脚本功能的三个好处:
- 原子执行
- 定制命令
- 减少网络开销
脚本管理操作:
- script load script
- script exists shal
- script flush
- scropt kill
3.5 Bitmaps
- Bitmaps 本身不是一种数据结构,实际上就是字符串,但是它可以对字符串的位进行操作。
- 可以把 Bitmaps 想象成以位为单位的数组,数组的下标在 Bitmaps 称为偏移量。
命令:
- 设置值
setbit key offset value
- 获取值
getbit key offset
- 获取 Bitmaps 指定范围为1的个数
bitcount key [start end]
- Bitmaps 之间的运算
bitop op destkey key [key...]
- 计算 Bitmaps 中第一个值的偏移量
bitpos key targetBit [start] [end]
3.6 HyperLogLog
不是一种数据结构,而是一种基数算法。
集合操作。
三个命令:
pfadd
pfcount
pfmerge
HyperLogLog 内存占用很少,但是存在一定的误差,官方说法是0.81%。
3.7 发布订阅
命令:
- 发布消息
publish channel message
- 订阅消息
subscribe channel [channel...]
客户端在执行订阅命令后进入订阅状态,只能接收 subscribe,psubscribe,unsubscribe,punsubscribe。的四个命令
Redis 不会对发布的消息进行持久化。
- 取消订阅
unsubscribe [channel [channel...]]
- 按照模式订阅和取消订阅
psubscribe pattern [pattern...]
punsubscribe pattern [pattern [pattern...]]
- 查询订阅
pubsub channels [pattern]
3.8 GEO
地理信息定位
命令:
- 添加地理位置信息
geoadd key longitude latitude member [longitude latitude member...]
- 获取地理位置信息
geopos key member [member...]
- 计算两个位置之间的距离
geodist key member1 member2 [unit]
unit 代表返回加过的单位
- m:米
- km:千米
- mi:英里
- ft:尺
- 获取指定位置范围内的地理位置信息集合
georadius key longitude latitude georadiusbymember key member radiusm [unit]
- 获取 geohash
geohash key member [member...]
- 删除地理位置信息
zrem key member
GEO 没有提供删除成员的命令,因为 GEO 底层实现是zset,所以可以借用 zrem 命令实现地理位置信息的删除操作。
【 Redis开发与运维】第3章 读书笔记相关推荐
- <Redis开发与运维>一书阅读笔记记录
文章目录 前言 第1章:初始redis 盛赞redis redis特性 redis使用场景 第2章:API的理解和使用 预备知识 全局命令 数据结构和内部编码 单线程架构 字符串 命令 内部编码 典型 ...
- 《Redis开发与运维》各章重点回顾
第 1 章 初识 Redis Redis 8个特性:速度快.基于键值对的数据结构服务器.功能丰富.简单稳定.客户端语言多.持久化.主从复制.支持高可用和分布式. Redis 不是万金油,有些场景不适合 ...
- Redis开发与运维 必备-电子书
Redis开发与运维电子书 fulei出版 链接: https://pan.baidu.com/s/12rlHhOKP7_72GE8a74lN1g 密码: eep2 复制这段内容后打开百度网盘手机Ap ...
- 「Redis开发与运维」读书笔记
第一章 初识Redis Redis的8个重要特性 速度快 内存存储数据 C语言实现 单线程架构,避免多线程竞争问题 Redis源码优化好 基于键值对的数据结构服务器 Redis 值可支持多种数据结构, ...
- Redis开发与运维笔记_1 初识2 API
目录 概述 第1章 初识Redis 1.1 盛赞Redis 1.2 Redis特性 1.3 配置.启动.操作.关闭Redis 第2章 API的理解和使用 2.1 预备 2.1.1 全局命令 2.1.2 ...
- 《Redis开发与运维》读书笔记--初识Redis(一)
目录 盛赞Redis Redis特性 redis使用场景 redis可以做什么? redis不可以做什么? 关于用好redis的两点建议 本章重点回顾 写在前面: 想必在写项目的过程中,我们很多时候都 ...
- 读书笔记:redis开发与运维 基础篇
redis特性 1>速度快:redis所有数据都是存放在内存中,是redis速度快的主要原因,是有c编写,一般来说用c编写的程序距离操作系统近,执行速度更快,非阻塞I/O,使用epoll ...
- 【Redis】《Redis 开发与运维》笔记-Chapter12-开发运维的“ 陷阱”
十二.开发运维的" 陷阱" 1.Linux配置优化之内存分配控制 1)vm.overcommit_memory Linux操作系统对大部分申请内存的请求都回复yes,以便能运行更多 ...
- Redis 开发与运维
Getting Start 高性能 性能优势的体现 C语言实现的内存管理 epoll的I/O多路复用技术+IO连接/关闭/读写通过事件实现异步的非阻塞IO TCP协议 单线程架构,不会因为高并发对服务 ...
- Redis理解内存《Redis开发与运维读书笔记》
文章目录 内存的消耗 内存划分 内存管理 内存优化 内存的消耗 可以使用info memory 查看内存消耗. 内存划分 对象内存 = sizeof(key) + sizeof(value) 应避免使 ...
最新文章
- Get了!用Python制作数据预测集成工具 | 附代码
- 你需要知道的20个常用的Python技巧
- ExclusiveTouch
- Java中设计模式之生产者消费者模式-3
- POJ 2411 Mondriaan's Dream(状态压缩DP)
- 用VS.NET2003制作WEB应用程序的安装包
- Linux实现MYSQl数据库的定时备份
- Andoid自动判断输入是电话,网址或者Email的方法----Linkify的应用!
- 【Java】java测试--词频统计 ----IO流操作
- OkHttp RouteSelector代理解析
- 基于Struts实现用户登录和注册模块
- adb查看某个文件是否存在_android – 使用ADB检查目录是否存在,如果存在则推送文件...
- 181205每日一句
- 【NLP】揭秘马尔可夫模型神秘面纱系列文章(一)
- hello world! 这是我在博客园的第一个博客!
- Linux命令大全.pdf
- ADC和DAC中常见技术术语
- DCM4CHEE 中worklist 乱码问题 dcmchee 中文乱码
- Nat. Med. :婴儿生命早期肠道病毒组和细菌组的动态
- 计算机简史:你想不通去脉,是因为不了解来龙
热门文章
- linux ipv4文件,Linux IPV4 IPV6地址批量Ping脚本(工具)
- html msn 消息,msn在线通玩法介绍 如何创建自己的msn在线通HTML代码
- 【Python】基于Python的百度迁徙3——城内出行强度(附代码)
- 最全面的PLC学习网站
- dnf修改服务器时间限制,DNF历史性革新,团本刷新时间改为周六,为黑鸦让路
- jsp简单多人在线聊天系统(非常容易理解的公聊、私聊)
- Unity3d资源包的使用心得
- Algorithm:数学建模大赛(CUMCM/NPMCM)之建模历年题目类型、数据分析及官方评阅要点之详细攻略
- 全国各地市统计年鉴汇总2021
- 顾樵数学物理方法_圣彼得堡国立大学硕士研究生:物理与天文学