分类 redis 中的文章

redis运维:监控指标体系与性能问题分析

前言

redis 用起来简单,出问题时排查难。这篇从监控指标体系和性能问题分析两个维度整理运维要点,指标是日常巡检的眼睛,排查手段是出事时的手术刀。

一、监控指标体系

redis 的监控指标可以分为五大类。

1. 性能指标(Performance)

Name Description
latency Redis 响应一个请求的时间
instantaneous_ops_per_sec 平均每秒处理请求总数
hit rate (calculated) 缓存命中率(计算出来的)

2. 内存指标(Memory)

Name Description
used_memory 已使用内存
mem_fragmentation_ratio 内存碎片率
evicted_keys 由于最大内存限制被移除的 key 的数量
blocked_clients 由于 BLPOP、BRPOP 或 BRPOPLPUPUSH 而被阻塞的客户端

3. 基本活动指标(Basic activity)

Name Description
connected_clients 客户端连接数
connected_slaves slave 数量
master_last_io_seconds_ago 最近一次主从交互之后的秒数
keyspace 数据库中的 key 值总数

4. 持久性指标(Persistence)

Name Description
rdb_last_save_time 最后一次持久化保存磁盘的时间戳
rdb_changes_since_last_save 自最后一次持久化以来数据库的更改数

5. 错误指标(Error)

Name Description
rejected_connections 由于达到 maxclient 限制而被拒绝的连接数
keyspace_misses key 值查找失败(没有命中)次数
master_link_down_since_seconds 主从断开的持续时间(以秒为单位)

二、监控方式与工具

常用工具:redis-benchmark、redis-stat、redis-faina、redislive、redis-cli、monitor、slowlog。

……

阅读全文

redis日常使用的一些建议

前言

最近处理了几起redis不安全的阿里云服务器,总结下一些建议

1、安全建议

1.1、设置bind

默认bind 0.0.0.0是默认值,相当于不设防

1
2
3
bind 0.0.0.0
建议修改成链接端的IP,比如
bind 192.168.100.101

1.2、设置auth

默认是不设置密码,相当于不需要密码和鉴权就可以访问

1
2
3
requirepass foobared
建议开启密码访问,并且不能设置弱口令密码,比如
requirepass Admin9527#&@ekd452

1.3、设置port

默认是6937,容易被扫描到

1
2
3
port 6379
建议修改默认端口,比如
port 36379

1.4、设置config

检查config这2个文件设置的值是否自己设置的值

……

阅读全文

redis数据迁移:跨机房同步的python脚本

前言

那阵子好几个项目要从老机房迁到阿里云,redis 直接用了阿里云带密码认证的实例。开发不想丢数据,又不愿意自己导,最后落到运维头上。麻烦在于:阿里云的 redis 实例只给访问地址、端口、密码,不支持 slaveof,主从同步这条路走不通,只能自己写个 python 脚本把源 redis 的数据取出来再写进去。

脚本基于开源工具(作者 JaesonCheng,见文末参考)整理改造,实测 7.7 万个 key 同步只用了 6 秒。

……

阅读全文

30W数据批量导入redis集群

前言

碰到工作中有数据要一次性快速刷入redis的场景
查了下资料,找到了快速高效的写入方法了

1、先想法子把数据组装程redis底层的命令格式

比如:

1
2
hset key filed value
set key value

2、大量的基础数据生成redis命令

之前我是采用golang读取数据源并转化程redis命令

3、用redis批量导入方式写入redis

1
cat d1.txt | redis-cli -a runoob

如果不想看到执行过程,可以用如下

1
cat d1.txt | redis-cli -a runoob --pipe

如果是远程执行,也可以

1
cat d1.txt | redis-cli -a runoob -p 6380 -h 192.168.1.100 --pipe

4、为什么不用程序去做呢

经过对比测试,程序写入redis还赶不上上面的批量导入命令
难点是d1.txt文件的生成,需要把数据组装成如下的redis命令
举例d1.txt样例

……

阅读全文

Redis日常命令整理

前言

整理下在linux中操作redis中的一些命令

1、统计个数

redis中名称含有OMP_OFFLINE的key的个数;

1
src/redis-cli keys "*OMP_OFFLINE*" | wc -l

2、批量删除

批量删除 0号数据库中名称含有OMP_OFFLINE的key:

1
src/redis-cli -n 0 keys "*OMP_OFFLINE*" | xargs src/redis-cli -n 0 del

在redis的客户端环境中并不支持批量删除。

可以把某个keys的结果全部输出到文件中,比如keys.log

……

阅读全文

最近文章

分类

标签

其它