慢查询日志记录命令执行先后的超时的执行时间。(只记录命令执行时间)git
Redis提供了slowlog-log-slower-than
和slowlog-max-len
两个配置。redis
slowlog-log-slower-than
是预设阀值,默认值10000微秒。若是执行的时间超过了这个阀值,那么这个命令就会被记录在慢查询日志中。算法
设置slowlog-log-slower-than
=0 ==> 记录全部命令
设置slowlog-log-slower-than
<0 ==> 对于任何命令都不会记录vim
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
-r
可让命令执行屡次。
例如执行三次ping命令:测试
$ redis-cli -r 3 ping
-i
表示间隔多少秒执行一次命令。
例如每一个1秒执行一次ping命令,一共执行5次:this
$ redis-cli -r 5 -i 1 ping
-r
表明从标准输入读取数据做为redis-cli的最后一个参数。
例如:
$ echo "hello" | redis-cli -x set key
-c
用于链接Redis Cluster节点时使用。
若是Redis配置了密码,使用-a
输入密码。
--scan
和--pattern
用于扫描指定模式的键。
--slave
是把当前Redis节点的从节点,用来获取当前Redis节点的更新操做。
--rdb
会请求Redis示例生成并发送RDB持久化文件,保存在本地。
--stat
能够实时获取Redis的重要统计信息。
$ redis-cli --stat
--test-memory
可用于测试系统内存是否够Redis使用。
例如检测当前系统是否能提供1G内存给Redis:
$ redis-server --test-memory 1024
测试完成输入passed this test。
redis-benchmark
用于为Redis作基准性能测试。
-c
设置客户端的并发数量,默认为50。
-n
表明客户端的请求总量,默认为100000。
对一组Redis命令进行组装,经过一次RTT(往返命令时间)传输给Redis。pipeline每次只能做用一个Redis节点上。
从开发层面来控制。
链接:https://blog.csdn.net/weixin_...
Redis提供了简单的事务功能以及集成Lua脚原本解决问题。
Redis提供简单的事务功能,将一组须要一块儿执行的命令放到multi
和exec
两个命令之间。
> multi > set key hello QUEUED # 表示命令并无真正执行 > exec
可使用discard
命令来中止事务的执行
> discard
watch
命令能够监控一个或多个键,若是有键在事务修改期间被别的方式修改,则以后的事务不会执行。
> watch key
在Redis中执行Lua脚本有两种方法:eval
和evalsha
。
> eval 脚本内容 key个数 key列表 参数列表
能够经过redis-cli--eval
执行Lua脚本。
经过获得脚本的SHA1校验和来直接执行对应的Lua脚本。可使Lua脚本常驻在服务端。
将脚本内容加载到Redis的内存中:
$ redis-cli script load "$(cat lua_get.lua)"
获得Lua脚本的SHA1。
> evalsha 脚本SHA1值 key个数 key列表 参数列表
> script load script
> scripts exists sha1 [sha1 ...]
> script flush
> script kill
以二进制来表示数据。
> setbit key offset value
设置键的第offset各位的值
> gitbit key offset
> bitcount start end
> bitop op destkey key[key ....]
bitop
包括了:and交集、or并集、not非、xor异或。将结果保存在destkey
中。
一种基准算法。
> 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
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 key member [member ...]
> zrem key member
GEO的底层实现是zset,因此借用zrem
命令实现对地理位置信息的删除。