linux怎么查看本机内存大小
277
2022-09-08
Redis运维笔记:一文记录常见的redis知识点
Redis简介
中文网站: redis.cn
Redis是一款高性能的key/values分部署吧内存数据库,支持数据持久化(定期把内存里的数据存储到硬盘)。支持master-slave模式数据备份。
内存清除策略
volatile-lru #最近最少使用(针对设置了TTL的key)allkeys-lru #删除最少使用的key(针对所有key)allkeys-lfu #从所有key中清除使用频率最少的keyvolatile-lfu #从所有配置了过期时间的key中清除使用频率最少的keyvolatile-random #在设置了TTL的key中随机移除allkeys-random #随机移除keyvolatile-ttl (minor TTL) #移除最近过期的keynoeviction #不删除
Redis常用运维指令
127.0.0.1:6379> set {key_name} {value} #存数据127.0.0.1:6379> get {key_name} #取数据127.0.0.1:6379> mset {key_list} #存多个key127.0.0.1:6379> mget #获取多个key值127.0.0.1:6379> select 数据库编号(0~15) #切换库127.0.0.1:6379> keys * #显示所有key(会遍历所有key)127.0.0.1:6379> keys a? #显示指定key127.0.0.1:6379> exists {key_name} #测试key是否存在127.0.0.1:6379> ttl key #查看key生存时间127.0.0.1:6379> type key #查看key类型127.0.0.1:6379> move key 库编号 #移动key到指定库127.0.0.1:6379> expire key名 数字 #设置key有效时间127.0.0.1:6379> del key名 #删除指定key127.0.0.1:6379> flushall #删除内存里的所有key127.0.0.1:6379> flushdb #删除所在库的所有key127.0.0.1:6379> save #保存所有key到硬盘127.0.0.1:6379> shutdown #停止服务127.0.0.1:6379> cluster info #查看集群信息127.0.0.1:6379> cluster nodes #查看集群节点信息127.0.0.1:6379> info memory #查看内存使用127.0.0.1:6379> dbsize #返回当前数据库key的总值(不会遍历所有key)
连接redis服务
$ redis-cli -h 192.168.2.22 -p 2379 127.0.0.1:6379> auth lidabai666 #输入密码
-h:指定redis服务地址;-p:指定redis服务端口号(默认6379)-a:指定redis连接密码(不建议在命令行指定,连接后再使用auth指定)-c:集群模式
127.0.0.1:6379> slowlog get
查看超时参数值:
127.0.0.1:6379> config get timeout
查看连接数
127.0.0.1:6379> info clients # Clients connected_clients:1 cluster_connections:0 maxclients:10000 client_recent_max_input_buffer:24 client_recent_max_output_buffer:0 blocked_clients:0 tracking_clients:0 clients_in_timeout_table:0
redis修改密码
127.0.0.1:6379> config set requirepass "new_password"
读取redis密码信息
127.0.0.1:6379> config get requirepass
这个时候这个密码没有刷新到配置文件中,如果redis重启,会丢失这个密码,为了持久生效,需要继续使用config的rewrite命令,这个命令会将当前的修改刷新到配置文件中,执行完这个命令后断开和重启都不会丢失这个密码了。
127.0.0.1:6379> config rewrite
主从复制
主从复制结构模式
1主1从 1主n从 主从从Redis服务运行后,默认都是master服务器。
工作原理
Slave向master发送sync命令Master启动后台存盘进程并收集所有修改数据命令;Master完成后台存盘后,传送整个数据文件到slave;Slave接收数据文件,加载到内存中完成首次完全同步;后续有新数据产生时,Master继续收集数据修改命令依次传送给slave,完成同步。
配置从库
127.0.0.1:6379> info replication #查看复制信息 # Replication role:master #角色 connected_slaves:0 master_failover_state:no-failover master_replid:0e9cbb4a818718b1e0f5646d489d5a0bfa9f74f5 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:0 命令行指定主库(临时) 127.0.0.1:6379> slaveof 主库IP 主库端口 配置文件指定主库(永久) $ cat /etc/redis/6379.conf Slaveof 主库IP 主库端口
反客为主(将从库恢复为主库)命令行临时设置
127.0.0.1:6379> slaveof no one
永久配置
$ cat /etc/redis/6379.conf
哨兵服务
哨兵服务介绍
监视master服务器,当发现master宕机后,将从服务器升级为主服务器。
配置哨兵服务
安装redis服务 创建主配置文件 启动哨兵服务
$ vim /etc/sentinel.conf sentinel monitor 主机名 IP地址 端口 票数 bind 0.0.0.0 sentinel auth-pass 主机名 密码 $ 重启服务 票数: 发现主库宕机的哨兵服务器台数
数据持久化
RBD
Redis数据库文件(RedisDataBase)数据持久化方式之一(默认),按照指定时间间隔,将内存中的数据集快照写入磁盘。
RBD优点
高性能的持久化实现,创建一个子进程来执行持久化,先将数据写入临时文件,持久化过程结束后,再用该临时文件替换上次持久化好的文件。过程主进程不做任何IO操作。比较适合大规模数据恢复,且对数据完整性要求不高的场合。
RBD缺点
意外宕机时,丢失最后一次持久化的所有数据。
1)定义RBD文件名
dbfilename "dump.rbd"
2)备份数据备份dump.rbd文件到其它位置
$ cp $PATH/dump.rbd 备份目录
3)恢复数据拷贝备份文件到数据库目录,启动redis服务。
$ cp 备份目录/dump.rbd 数据库目录/
AOF
Append Only File追加方式记录写操作的文件,记录redis服务所有写操作,不段的将新的写操作追加到文件的末尾。默认没有启用,使用cat命令可以查看文件内容。
AOF优点:可以灵活的设置持久化方式,出现意外宕机时,仅可能丢失1秒的数据。AOF缺点:持久化文件的体积通常会大于RBD方式,执行fsync策略的速度可能比RBD方式慢。
1)启用AOF
> config set appendonly yes > config rewrite #写进配置文件
2)备份数据
$ cp 数据库目录/appendonly.aof 备份目录
3)数据恢复
cp备份文件到数据库目录,启动redis服务。
4)优化配置定义文件名
appendonly yes #启用aof appendfilename "appendonly.aof" #指定文件名
AOF文件记录写操作的方式appendfsync always #实时记录,并完成磁盘同步appendfsync everysec #每秒记录一次,并完成磁盘同步appendfsync no #写入aof,不执行磁盘同步
日志重写
auto-aof-rewrite-min-size 64mb #首次重写触发值 auto-aof-rewrite-percentage 100 #再次重写,增长百分比
修复AOF文件把文件恢复到最后一次的正确操作
$ redis-check-aof --fix appendonly.aof
Redis优化
内存优化
设置Maxmemory #最大内存Maxmemory-policy #定义使用策略Maxmemory-samples #选取key模板的个数(针对lru和ttl策略)
数据从内存保存到硬盘的频率save 900 1 #15分钟有1个key改变即存盘save 300 10 #5分钟有10个key改变即存盘save 60 10000 #1分钟有10000个key改变即存盘
手动存盘save #阻塞写存盘bgsave 不阻塞写存盘
#
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~