redis的附加功能

阅读数:54 评论数:0

跳转到新版页面

分类

应用软件

正文

一、慢查询

慢查询日志帮助开发和运维人员定位系统存在的慢操作。慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(慢查询ID,发生时间戳,耗时,命令的详细信息)记录下来。

慢查询只记录命令执行时间,并不包括命令排队时间和网络传输时间

1、相关配置参数

slowlog-log-slower-than

单位是ms,默认值是1000

小于0 ,则任何命令都不会记录日志

showlog-max-len 了慢查询日志最多存储多少条

2、配置命令

#获取慢查询日志
show get[n]
#获取慢查询日志列表当前长度
showlog len
#慢查询日志重置
showlog reset

二、pipeline

管道(pipeline)可以一次性发送多条命令并在执行完后一次性将结果返回,pipeline通过减少客户端与redis的通信次数来实现降低往返延时时间。

三、事务和lua脚本

redis提供了简单的事务功能,将一组需要的命令放到multi和exec两个命令之间,multi代表事务开始,exec代码事务结束。

事务开始 multi
事务结束 exec
事务乐观锁 watch
事务停止 discard

1、lua脚本

将Lua脚本加载到redis内存中 script load script
是否将sha1加载到redis内存中 scripts exists sh1 [sha1 ...]
清除加载到redis内存中的所有Lua脚本 script flush
用于杀掉正在执行的Lua脚本 script kill

四、发布订阅

Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel。

1、基本命令

发布消息 publish channel message
订阅消息 subscribe channel [channel ...]
取消消息 unsubscribe channel [channel ...]
按照模式订阅和取消订阅 psubscribe pattern [pattern...]
punsubscribe pattern [pattern...]
查看活跃频道 pubsub channels [pattern]
查看频道订阅数 pubsub numsub [channel ...]
查看模式订阅数 pubsub numspat

五、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 radiusm|km|ft|mi [withcoord] [withdist] [withhash] [COUNT count] [asc|desc]  [store key] [storedist key]
georadiusbymember key memeber radiusm|km|ft|mi [withcoord] [withdist] [withhash] [COUNT count] [asc|desc] [store key] [storedist key]
获取geohash geohash key member [member ...]
删除地理位置信息 zrem key member



相关推荐

一、redis-cli redis-cli,这个命令将打开redis终端。输入ping命令,如果有pong响应,说明正常启动。 用法:redis-cli [OPTIONS] [cmd [arg [ar

protected-mode是为了禁止公网访问redis,加强redis安全的。它启用的条件,有两个: (1)没有bind IP (2)没有设置访问密码。 <

一、单机模式 1、优点 (1)部署简单 (2)成本低 (3)高性能,因为不需要同步数据 2、缺点 (1)可靠性差 二、主从复制模式 主从模式配置很简单,只需要在从节点配置主节点的ip和端口号即可。

前置知识 1、requirepass验证客户端,对登录权限做限制,redis每个节点的requirepass可以是独立、不同的。 <p

在集群模式下,redis在接收到键任何命令时会先计算该键所在的槽,如果改键所在的槽位于当前节点,则直接执行命令,如果改键位于其它节点,则不执行该命令,返回重定向信息。比如hello这

1、sentinel不会存储数据。 2、客户端不会直接从redis中获取信息,而是从sentinel获取信息。 3、sentinel的默认端口是26379 <

redis-cli keys "s*" | xargs redis-cli del 另外还可以用-n指定操作的数据库编号 redis-cli -n 2 keys "s*" | xargs redis-

psubscribe pattern [pattern] 与subscribe一样,只是可以使用*匹配符匹配多个channel

ZSCORE key member 如果member元素不是有序集key的成员,或key不存在,返回nil

1、官方文档 The timeout will only be cleared by commands that delete or overwrite the contents of the key