redis学习笔记(三)--Redis的功能
慢查询
基本概念
慢查询日志记录命令执行前后的超时的执行时间。(只记录命令执行时间)
慢查询的两个配置
Redis提供了slowlog-log-slower-than
和slowlog-max-len
两个配置。
slowlog-log-slower-than
slowlog-log-slower-than
是预设阀值,默认值10000微秒。如果执行的时间超过了这个阀值,那么这个命令就会被记录在慢查询日志中。
运维提示
设置slowlog-log-slower-than
=0 ==> 记录所有命令
设置slowlog-log-slower-than
<0 ==> 对于任何命令都不会记录
slowlog-max-len
slowlog-max-len
说明慢查询日志最多存储多少条。
修改方式
方式一
修改配置文件:
$ vim redis.conf
...
slowlog-log-slower-than 10000
slowlog-max-len 5
方式二
使用config set
命令:
> config set slowlog-log-slower-than 20000
> config set slowlog-max-len 1000
> config rewrite # 配置持久化到本地配置文件
命令
获取慢查询日志
> slowlog get [n]
慢查询日志由日志标识id、发生时间戳、命令耗时、执行命令和参数组成。
获取慢查询日志
> slowlog len
慢查询日志重置
> slowlog reset
Redis Shell
redis-cli
命令执行多次
-r
可以让命令执行多次。
例如执行三次ping命令:
$ redis-cli -r 3 ping
间隔时间执行命令
-i
表示间隔多少秒执行一次命令。
例如每个1秒执行一次ping命令,一共执行5次:
$ redis-cli -r 5 -i 1 ping
从标准输入读取数据
-r
代表从标准输入读取数据作为redis-cli的最后一个参数。
例如:
$ echo "hello" | redis-cli -x set key
连接Redis Cluster节点
-c
用于连接Redis Cluster节点时使用。
密码登录
如果Redis配置了密码,使用-a
输入密码。
扫描指定模式
--scan
和--pattern
用于扫描指定模式的键。
模拟当前Redis节点的从节点
--slave
是把当前Redis节点的从节点,用来获取当前Redis节点的更新操作。
生成并发送RDB持久化文件
--rdb
会请求Redis示例生成并发送RDB持久化文件,保存在本地。
查看Redis的重要统计信息
--stat
可以实时获取Redis的重要统计信息。
$ redis-cli --stat
redis-server
测试内存容量
--test-memory
可用于测试系统内存是否够Redis使用。
例如检测当前系统是否能提供1G内存给Redis:
$ redis-server --test-memory 1024
测试完成输入passed this test。
redis-benchmark
redis-benchmark
用于为Redis做基准性能测试。
命令
设置并发数量
-c
设置客户端的并发数量,默认为50。
设置请求总量
-n
代表客户端的请求总量,默认为100000。
Pipeline(流水线)
基本概念
对一组Redis命令进行组装,通过一次RTT(往返命令时间)传输给Redis。pipeline每次只能作用一个Redis节点上。
使用
从开发层面来控制。
连接:https://blog.csdn.net/weixin_...
事务和Lua
基本概念
Redis提供了简单的事务功能以及集成Lua脚本来解决问题。
事务
Redis提供简单的事务功能,将一组需要一起执行的命令放到multi
和exec
两个命令之间。
> multi
> set key hello
QUEUED # 表示命令并没有真正执行
> exec
可以使用discard
命令来停止事务的执行
> discard
watch
命令可以监控一个或多个键,如果有键在事务修改期间被别的方式修改,则之后的事务不会执行。
> watch key
Lua
在Redis中执行Lua脚本有两种方法:eval
和evalsha
。
eval
> eval 脚本内容 key个数 key列表 参数列表
可以通过redis-cli--eval
执行Lua脚本。
evalsha
通过得到脚本的SHA1校验和来直接执行对应的Lua脚本。可以使Lua脚本常驻在服务端。
加载脚本
将脚本内容加载到Redis的内存中:
$ redis-cli script load "$(cat lua_get.lua)"
得到Lua脚本的SHA1。
执行脚本
> evalsha 脚本SHA1值 key个数 key列表 参数列表
管理Lua脚本
加载脚本到Redis内存中
> script load script
检测脚本是否存在
> scripts exists sha1 [sha1 ...]
清除内存中已经加载的所有脚本
> script flush
终止正在执行的脚本
> script kill
Bitmap位图
基本概念
以二进制来表示数据。
命令
设置值
> setbit key offset value
设置键的第offset各位的值
获取值
> gitbit key offset
获取Bitmaps指定范围值为1的个数
> bitcount start end
Bitmaps间的运算
> bitop op destkey key[key ....]
bitop
包括了:and交集、or并集、not非、xor异或。将结果保存在destkey
中。
HyperLogLog
基本概念
一种基准算法。
命令
添加
> pfadd key element [element ...]
添加成功返回1。
计算独立用户数
> pfcount key [key ...]
合并
> pfmerge destkey sourcekey [siyrcekey ..]
发布订阅
基本概念
在"发布/订阅"的模式下,消息发送者和订阅者不进行直接通信,发布者客户端向指定的频道(channel)发布消息,订阅该频道的每个客户端都可以收到该消息。
命令
发布消息
> publish channel message
订阅消息
> subscribe channel [channel ...]
取消订阅
> unsubscribe [channel [channel ...]]
按照模式订阅和取消订阅
> psubscribe pattern [pattern ...]
> punsubscribe [pattern [pattern ...]]
查阅订阅
查看活跃的频道
> pubsub channels [pattern]
查看频道订阅数
> pubsub numsub [channel ...]
查看模式订阅数
> pubsub numpat
GEO
基本概念
Redis3.2版本提供了GEO(定理信息定位)功能。
命令
增加地理位置信息
> geoadd key longitude latitude member [longitude latitude member ...]
longitude:经度
latitude:维度
member:成员
获取地理位置信息
> geopos key member [member ...]
获取两个地理位置的距离
> geodist key member1 member2 [unit]
unit代表返回的结果的单位:
m(meters):米
km(kilometers):公里
mi(miles):英里
ft(feet):代表尺
获取指定位置范围内的地理信息位置集合
> georadius key longitude latitude raniusm|km|ft|mi
> georadiusbymember key member raniusm|km|ft|mi
获取geohash
> geohash key member [member ...]
删除地理位置信息
> zrem key member
GEO的底层实现是zset,所以借用zrem
命令实现对地理位置信息的删除。
redis学习笔记(三)--Redis的功能相关推荐
- StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用
StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 原文: StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 Connec ...
- zset获取指定score_redis zset更新score redis学习笔记5 - Redis - 服务器之家
redis zset更新score redis学习笔记5 发布时间:2017-04-03 来源:服务器之家 一:概述 zset全称为sorted-sets类型,和set数据类型有极为相似,都是字符串的 ...
- Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置
0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...
- Redis学习笔记五:独立功能之事务
Redis 事务提供了一种将多个命令请求打包,然后一次性.按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会中断,会将事务中的所以命令都执行完毕才去处理其他客户端的命令请求. 事务的实现 事务 ...
- Redis学习笔记三:Redis的数据类型
redis是一种高级的key-value的存储系统 1,key是字符串类型 2,value能够存储五种数据类型: 1.存储字符串 string set key value:设定key持有指定的字符串v ...
- Redis学习笔记之Redis的对象
类型与编码: typedef struct redisObject { unsigned type:4://类型 unsigned encod ...
- Redis学习笔记1-理论篇
目录 1,Redis 数据类型的底层结构 1.1,Redis 中的数据类型 1.2,全局哈希表 1.3,数据类型的底层结构 1.4,哈希冲突 1.5,rehash 操作 2,Redis 的 IO 模型 ...
- Redis学习笔记(B站狂神说)(自己总结方便复习)
Redis学习笔记B站狂神说 redis: 非关系型数据库 一.NoSQL概述 1.为什么要用Nosql 1.单机Mysql的年代 思考一下,这种情况下:整个网站的瓶颈是什么? 1.数据量如果太大,一 ...
- Redis学习笔记-GEO经纬度编码原理地理划分
文章目录 Redis学习笔记-GEO经纬度编码原理&地理划分 1.笔记图 2.GEO 应用场景 3.GEO 数据特点举例 4.GeoHash 的编码方法(二分区间,区间编码) 5.GEO 经纬 ...
最新文章
- usaco Palindromic Squares
- 学python多长时间能够精通-Python培训需要多长时间可以学会?
- 【带着canvas去流浪(10)】文字烟花
- Android最佳性能实践(一):合理管理内存
- python时间格式_python 格式化日期
- 2019南昌网络赛G. tsy‘s number(反演 + 积性函数O(n)预处理)
- Nodejs+socket.io搭建WebRTC信令服务器
- win10 1909更新后无法上网三种解决方法
- mysql数据库增删改操作不自动提交事务
- 2019.04.17 面向对象编程篇207
- 自动化专业考研方向简介
- 学习c语言有什么作用,c语言有什么用 小白如何学习c语言
- windows XP系统自动关机
- Spider之忽略网站SSL证书验证
- java 导出本地xml文件_java导出xml文件
- python 听歌识曲_听歌识曲--用python实现一个音乐检索器
- excel打开2个独立窗口_66㎡ 的公寓,竟能安排下 2个卧室和独立马桶间?
- 游戏评论之——戴森球计划
- Mac系统升级Python版本(Python2.7升级到Python3.8.2)
- MySql求第二高薪水