redis(1) redis的一些小功能

1,慢查询分析

redis提供了slowlog-log-slower-than和slowlog-max-len配置解决预设阈值和慢查询的最大保存记录

2.Bitmaps

Bitmaps用位来保存一些信息。

3.HyperLogLog

利用很小的空间来统计总数,但是会有一些误差

4.事务

multi

会把multi和exec中的命令包起来,其中任何一个出错误,整个事务会回滚

redis>MULTI
OK
redis>SET key value
QUEUED
redis>SET key
(error)ERR wrong number of arguments for 'set' command
redis> errorCOMMAND key
(error) ERR unknown command 'errorCOMMAND'
redis> EXEC
(error) EXECABORT Transaction discarded because of previous errors.

但是运行错误

运行错误指在命令执行时出现的错误,比如使用散列类型的命令操作集合类型的键,这种错误在实际执行之前Redis是无法发现的,所以在事务里这样的命令是会被Redis接受并执行的。如果事务里的一条命令出现了运行错误,事务里其他的命令依然会继续执行(包括出错命令之后的命令),示例如下:

redis>MULTI
OK
redis>SET key 1
QUEUED
redis>SADD key 2
QUEUED
redis>SET key 3
QUEUED
redis>EXEC
1) OK
2) (error) ERR Operation against a key holding the wrong kind of value
3) OK
redis>GET key
"3"

 discard会抛弃之前的muti事务,在muti事务中的操作会作废如下

> SET foo 1
OK
> MULTI
OK
> INCR foo
QUEUED
> DISCARD
OK
> GET foo
"1"

watch命令采用了乐观锁控制,有点类似cas

当watch某个key的时候,如果在multi exec执行期间,key的值被改变了,那么整个multi exec中间的命令都不执行

常见的一个例子:用watch处理秒杀问题

5.输出缓冲区和出入缓冲区

两者都不受maxmemory影响,前者是redis的处理速度超过客户端接收速度,后者是因为接收的命令超过redis处理速度

前者常见的原因是monitor命令的使用

6.客户端常见异常

a。无法从连接池中获取连接  原因可能会有:存在慢查询,服务短异常,客户端没有归还连接等

b。主从节点内存不一样大,但是主内存特别大,超过了maxmemory的限制,很有可能是输入缓冲区或者输出缓冲区过大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值