设为首页 收藏本站
查看: 1038|回复: 0

[经验分享] Redis 服务管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-12 12:57:56 | 显示全部楼层 |阅读模式
  对Redis服务器的管理可以使用redis提供的服务命令,也可以借助一些管理软件,如:phpRedisAdmin

一、Redis服务器命令主要是用于管理redis服务


  

1.bgrewriteaof
异步执行一个 aof(appendonly file) 文件重写操作
2.bgsave
在后台异步保存当前数据库的数据到磁盘
3.client kill [ip:port] [id client-id]
关闭客户端连接
4.client list
获取连接到服务器的客户端连接列表
5.client getname
获取连接的名称
6.client pause timeout
在指定时间内终止运行来自客户端的命令
7.client setname connection-name
设置当前连接的名称
8.cluster slots
获取集群节点的映射数组
9.command
获取 redis 命令详情数组
10.command count
获取 redis 命令总数
11.command getkeys
获取给定命令的所有键
12.time
返回当前服务器时间
13.command info command-name [command-name ...]
获取指定 redis 命令描述的数组
14.config get parameter
获取指定配置参数的值
15.config rewrite
对启动 redis 服务器时所指定的 redis.conf 配置文件进行改写
16.config set parameter value
修改 redis 配置参数,无需重启
17.config resetstat
重置 info 命令中的某些统计数据
18.dbsize
返回当前数据库的 key 的数量
19.debug object key
获取 key 的调试信息
20.debug segfault
让 redis 服务崩溃
21.flushall
删除所有数据库的所有key
22.flushdb
删除当前数据库的所有key
23.info [section]
获取 redis 服务器的各种信息和统计数值
24.lastsave
返回最近一次 redis 成功将数据保存到磁盘上的时间,以 unix 时间戳格式表示
25.monitor
实时打印出 redis 服务器接收到的命令,调试用
26.role
返回主从实例所属的角色
27.save
异步保存数据到硬盘
28.shutdown [nosave] [save]
异步保存数据到硬盘,并关闭服务器
29.slaveof host port
将当前服务器转变为指定服务器的从属服务器(slave server)
30.slowlog subcommand [argument]
管理 redis 的慢日志
31.sync
用于复制功能(replication)的内部命令二、备份和还原

1.redis自带的持久化


Redis提供了两种持久化选项,分别是RDB和AOF。

默认情况下60秒刷新到disk一次[save 60 10000 当有1w条keys数据被改变时],Redis的数据集保存在叫dump.rdb一个二进制文件,这种策略被称为快照。

也可以手动调用Save或BGSAVE命令的:

./bin/redis-cli -h 192.168.100.205  -p 6379 -a pwd bgsave

快照易恢复,文件也小,但是如果遇到宕机等情况的时候快照的数据可能会不完整。此时可能需要启用另一种持久化方式AOF,在配置文件中打开[appendonly yes]。

AOF刷新日志到disk的规则:

appendfsync always #always 表示每次有写操作都进行同步,非常慢,非常安全。

appendfsync everysec #everysec表示对写操作进行累积,每秒同步一次

官方的建议的everysec,安全,就是速度不够快,如果是机器出现问题可能会丢失1秒的数据。

也可以手动执行bgrewriteaof进行AOF备份:

./bin/redis-cli -h 192.168.100.205  -p 6379 -a pwd bgrewriteaof

当采用一主(Master)多从(Slave)只做了读写分离,Master负责写入和AOF持久化,Slave负责读取。每天通过Slave做RDB备份[官方给的建议是每小时备份RDB文件,看你的策略和业务类型了],并且会用脚本将相应的备份文件推送到备份服务器。

当redis服务器挂掉时,重启时将按照以下优先级恢复数据到内存:

如果只配置AOF,重启时加载AOF文件恢复数据;

如果同时 配置了RBD和AOF,启动是只加载AOF文件恢复数据;

如果只配置RBD,启动是讲加载dump文件恢复数据。

恢复时需要注意,要是主库挂了不能直接重启主库,否则会直接覆盖掉从库的AOF文件,一定要确保要恢复的文件都正确才能启动,否则会冲掉原来的文件。

2.第三方工具

redis的备份和还原,可以借助第三方的工具redis-dump。

1)安装redis-dump

yum install ruby rubygems ruby-devel   //安装rubygems 以及相关包  

gem sources -a http://ruby.taobao.org/   //源,加入淘宝,外面的源不能访问  

gem install redis-dump -V   //安装redis-dump  

2)redis-dump导出数据

# telnet 192.168.100.205 6379 //telnet到redis  

Trying 192.168.100.205...  

Connected to 192.168.100.205.  

Escape character is '^]'.  

set test 11 //设置一个值  

+OK  

get test //取值  

$2  

11

# redis-dump -u 192.168.100.205:6379 >test.json //导出数据

3)redis-dump导出数据

# telnet 192.168.100.205 6379 //telnet到redis  

Trying 192.168.100.205...  

Connected to 192.168.100.205.  

Escape character is '^]'.  

flushall //请空所有数据  

+OK  

keys * //查看已清空  

*0  

# < test.json redis-load //导入数据  

# telnet 192.168.100.205 6379  

Trying 192.168.100.205...  

Connected to 192.168.100.205.  

Escape character is '^]'.  

keys * //已导入成功  

*1  

$4  

test

三、redis安全

可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。

1.通过以下命令查看是否设置了密码验证

redis 192.168.100.205:6379> CONFIG get requirepass

1) &quot;requirepass&quot;

2) (nil)

默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务。

2.通过以下命令来修改该参数

redis 192.168.100.205:6379> CONFIG set requirepass &quot;admin&quot;

OK

redis 192.168.100.205:6379> CONFIG get requirepass

1) &quot;requirepass&quot;

2) &quot;admin&quot;

设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。

3.AUTH 命令基本语法&#26684;式

redis 192.168.100.205:6379> AUTH password

如:192.168.100.205:6379> AUTH &quot;admin&quot;

这样验证密码ok后,就可以访问数据库了。
  
  四、Redis管理工具之phpRedisAdmin

phpRedisAdmin是一个简单的Web界面用来管理Redis数据库。可以添加多个Server,可以用来查看、修改、删除Key及数据,也可以实现数据备份及导出。

项目地址:https://github.com/ErikDubbelboer/phpRedisAdmin

演示地址:http://dubbelboer.com/phpRedisAdmin/


DSC0000.jpg


  


  参考文章:
  1.MySQL数据迁移到Redis

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-138338-1-1.html 上篇帖子: 把 MongoDB 当成是纯内存数据库来使用(Redis 风格) 下篇帖子: redis中ziplist
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表