【从入门到放弃-Redis】redis运维知识

常用命令

time 时间戳及微秒数
dbsize 当前数据库下key的数量
bgrewriteaof 手动重写aof
save 阻塞当前进程,保存rdb快照
bgsave 后台保存rdb快照
lastsave 上次保存时间
flushall 清空所有db
flushdb 清空当前db
keys * 查询所有的字段
shutdown [save|nosave] 如果不小心运行了flushall,立即shutdown nosave,关闭服务器
然后手工编辑aof文件,去掉文件中的”flushall”相关行,然后开启服务器,就可以导入原来数据
如果flushall后,系统恰好bgrewriteaof了,那么aof就清空了,数据丢失
info 查看redis服务器的信息
slowlog get 显示慢查询 其时间是由 slowlog-log-slower-than 10000 来指定,(单位是微秒)
问:服务器储存多少条慢查询的记录?
答:由slowlog-max-len 128 来限制

redis运维时应注意的参数:

内存

Memory

used_memory:952768 数据结构的空间,占用的空间
used_memory_rss:919224 理论上应该占用的空间
mem_fragmentation_ratio:0.96 前两者的比例,一点几为最佳,如果此值过大,说明redis的内存碎片化严重,可以导出再导入一次

主从复制

Replication

role:slave
master_host:192.168.1.128
master_port:6379
master_link_status:up

持久化

Persistence

rdb_changes_since_last_save:0
rdb_lat_save_time:1444737904

config get 配置名 :获取配置名的值
config set 配置名 值 :把配置名设置为值

rdb服务器间迁移:rdb文件要在没被占用的时候复制

运行时更改master-slave
修改一台slave为master
1:命令该服务不做其他redis服务的slave
命令:slaveof no one
2:修改其readonly为yes

sentine运维监控配置

sentinel monitor def_master 127.0.0.1 6679 2
sentinel auth-pass def_master 密码

sentinel down-after-milliseconds de_master 30000 设置实例被认定失效的时间间隔
sentinel can-failover def_master yes 当前sentinel 是否允许实施failover(故障转移)

sentinel notification-script mymaster /var/redis/notify.sh 出故障后的执行脚本

Redis在PHP中使用

php-redis扩展编译

  • 下载最新stable版扩展
  • 解压
  • 进入解压目录下执行/php/path/bin/phpize(检测php的内核版本,并为扩展生成相应的编译配置)
  • configure –with-php-config=/php/path/bin/php-config
  • make&&make install
  • 在php.ini中添加扩展配置 引入编译出的redis.so文件

<?php
$redis = new Redis(); //创建一个redis对象
$redis->open(‘localhost’, 6379); //建立一个连接
$redis->set(‘name’, ‘lisi’); //set
var_dump($redis->get(‘name’)); //get