redis快的因素
1纯内存访问
2IO复用
3单线程避免了线程切换和竟态产生的消耗
一 常用命令
mset a 1 b 2批量设置键值,mget a b获取 同样1000键值速度比set快10倍,仅0.1秒左右。
exists a 判断是否存在
flushall 清空所有数据库数据 flushdb 清除当前数据库
incr a a值自增1 decr 自减
append a 2 追加2 结果为12
strlen a 字串长
setrange a 0 2 将第一个数字变为2 结果22
del a 删除
dbsize 键总数
key *
redis -r 5 -i 1 ping 间隔1秒ping5次 -a 配置密码时不需手动输入 auth --stat状态查询,比info 信息少些 --raw 格式化 --no-row不格式话
redis-server --test-memory 检测系统是否能稳定分配指定内存给redis
redis-benchamrk -c 100 -n 2000 -r 10000 100客户端同时请求,执行2000次 ,-r插入随机键 可以用性能压测。
二优化
1慢查询优化
redis 是单线程架构,所以要求每个命令都能快速完成
慢查询参数 slowlog-log-slower-than 默认10000微秒=10毫秒=0.01秒
slowlog-max-len 慢查询列表最大长度默认128 达到最大长度时,覆盖最先插入慢查询命令
临时变变参数 :config set slowlog-log-slower-than 20000
将参数写入配置文件 config rewrite
慢查询日志获取
slowlog get
分别为慢查询日志标识ID 发生时间戳 命令耗时 执行命令和参数
slowlog len 慢查询日志条数
slowlog reset 清理
slowlog-max-len 不会占用太大内存,线上可以1000以上
slowlog-log-slower-than 默认10毫秒,高流量1毫秒以上支撑OPS不到1000,高并发可以设置1毫秒以下
坚持到无能为力,拼搏到感动自己