2019 十月 14 , 星期一
Home / 数据存储 / Redis系列-安装部署维护篇 (转)

Redis系列-安装部署维护篇 (转)

Redis是个高性能的key-value数据库,它的key具有丰富的数据结构:string,hash,list set和sorted set。作为NOSQL,比起memcache之类,不仅仅key数据结构丰富,而且具有持久化的功能,并且能够支持主从复制,很方便构建集群。redis高性能很大程度上源于它是个内存型数据库,它的高性能表现在:set操作11w/s,get操作8.1w/s,与其他类型数据库性能差异,可以而参考:http://timyang.net/data/mcdb-tt-redis/   。为了进一步加深对redis的理解总结,我打算写个redis系列的博客。这里主要谈谈redis安装部署及运维维护。

1、下载安装

 


  1. [root@xsf003 tool]# wget -c http://redis.googlecode.com/files/redis-2.4.17.tar.gz    #下载
  2. [root@xsf003 tool]# tar -zxvf redis-2.4.17.tar.gz   #解压
  3. [root@xsf003 tool]# cd redis-2.4.17
  4. [root@xsf003 redis-2.4.17]# make  #编译
  5. [root@xsf003 redis-2.4.17]# make install #安装

安装完毕,常用工具会自动拷贝到/user/loca/bin目录下。做为服务器,我们常常还需要把redis设置成开机自启动,源码包中有个很好用的脚本,执行脚步根据提示输入即可。

 

 


  1. [root@xsf003 redis-2.4.17]# cd utils/
  2. [root@xsf003 utils]# ./install_server.sh
  3. Welcome to the redis service installer
  4. This script will help you easily set up a running redis server
  5. Please select the redis port for this instance: [6379]
  6. Selecting default: 6379
  7. Please select the redis config file name [/etc/redis/6379.conf]
  8. Selected default - /etc/redis/6379.conf
  9. Please select the redis log file name [/var/log/redis_6379.log]
  10. Selected default - /var/log/redis_6379.log
  11. Please select the data directory for this instance [/var/lib/redis/6379]
  12. Selected default - /var/lib/redis/6379
  13. Please select the redis executable path [/usr/local/bin/redis-server]
  14. Copied /tmp/6379.conf => /etc/init.d/redis_6379
  15. Installing service…
  16. Successfully added to chkconfig!
  17. Successfully added to runlevels 345!
  18. Starting Redis server…
  19. Installation successful!

 

注意执行install_server.sh,需要先进入utils目录,不然脚本会报错,提示找不到相应文件。安装完服务,redis自动启动,可以用ps命令查看到相关信息:

 


  1. [root@xsf003 utils]# ps -ef | grep redis
  2. root      4554     1  0 10:55 ?        00:00:02 /usr/local/bin/redis-server /etc/redis/6379.conf
  3. root      4564  2808  0 10:59 pts/0    00:00:00 grep redis

2、手动启动关闭服务

 

 


  1. [root@xsf003 utils]# /etc/init.d/redis_6379 stop   #关闭
  2. [root@xsf003 utils]# /etc/init.d/redis_6379 start  #启动

也可以用下面类似的命令直接启动关闭redis服务:

 


  1. /usr/local/bin/redis-server /etc/redis/redis.conf   #指定配置文件 启动
  2. /usr/local/bin/redis-cli -p 6379 shutdown   # 关闭,如果默认端口6379 可以直接 /usr/local/bin/redis-cli shutdown

 

3、通过客户端命令行工具连接redis服务查看redis相关信息

 

a)连接

 


  1. [root@xsf003 utils]# redis-cli
  2. redis 127.0.0.1:6379>

b)其他指令

 

 


  1. redis 127.0.0.1:6379> info  #查看server版本内存使用连接等信息
  2. redis 127.0.0.1:6379> client list  #获取客户连接列表
  3. redis 127.0.0.1:6379> client kill 127.0.0.1:33441 #终止某个客户端连接
  4. redis 127.0.0.1:6379> dbsize #当前保存key的数量
  5. redis 127.0.0.1:6379> save #立即保存数据到硬盘
  6. redis 127.0.0.1:6379> bgsave #异步保存数据到硬盘
  7. redis 127.0.0.1:6379> flushdb #当前库中移除所有key
  8. redis 127.0.0.1:6379> flushall #移除所有key从所有库中
  9. redis 127.0.0.1:6379> lastsave #获取上次成功保存到硬盘的unix时间戳
  10. redis 127.0.0.1:6379> monitor #实时监测服务器接收到的请求
  11. redis 127.0.0.1:6379> slowlog len #查询慢查询日志条数
  12. (integer) 3
  13. redis 127.0.0.1:6379> slowlog get #返回所有的慢查询日志,最大值取决于slowlog-max-len配置
  14. redis 127.0.0.1:6379> slowlog get 2 #打印两条慢查询日志
  15. redis 127.0.0.1:6379> slowlog reset #清空慢查询日志信息

通过以上操作,单台服务器基本跑起来了,不过后面的路还很长很长。。。。

 

 

Redis系列-远程连接redis并给redis加锁

本篇其实是可以和上篇合并的,但由于blog太长编辑麻烦,阅读累人,打算新开一篇, 方便阅读查找。

假设两台redis服务器,ip分别为:192.168.1.101和192.168.1.103,如何在101上通过redis-cli访问103上的redis呢?在远程连接103之前,先讲下redis-cli的几个关键参数:

用法:redis-cli [OPTIONS] [cmd [arg [arg ...]]]

-h <主机ip>,默认是127.0.0.1

-p <端口>,默认是6379

-a <密码>,如果redis加锁,需要传递密码

–help,显示帮助信息

通过对rendis-cli用法介绍,在101上连接103应该很简单:

 


  1. [root@xsf001 ~]# redis-cli -h 192.168.1.103 -p 6379
  2. redis 192.168.1.103:6379>

在101上对103设置个个string值 user.1.name=zhangsan

 

 


  1. redis 192.168.1.103:6379> set user.1.name zhangsan
  2. OK

看到ok,表明设置成功了。然后直接在103上登陆,看能不能获取到这个值。

 

 


  1. [root@xsf003 utils]# redis-cli
  2. redis 127.0.0.1:6379> get user.1.name
  3. “zhangsan”

木错吧,确实是zhangsan,这说明101上连的是103上的redis服务器。当然能够成功连接103是有基本条件的,101上可以喝103上的6379端口通信。

 

人人都可以连接redis服务器是很危险的,我们需要给103上的redis设置个密码,怎么设置呢,需要编辑redis的配置文件/etc/redis/6379.conf

 


  1. [root@xsf003 utils]# vim /etc/redis/6379.conf

找到# requirepass foobared 去掉前面的注释#,并把foobared 替换为你自己的密码:hi, coder

 

 


  1. requirepass ”hi, coder”

保存配置文件之后,重启redis服务

 

 


  1. [root@xsf003 utils]# /etc/init.d/redis_6379 stop
  2. Stopping …
  3. Waiting for Redis to shutdown …
  4. Redis stopped
  5. [root@xsf003 utils]# /etc/init.d/redis_6379 start
  6. Starting Redis server…

101上重新连接103并获取user.1.name的值

 

 


  1. [root@xsf001 ~]# redis-cli -h 192.168.1.103 -p 6379
  2. redis 192.168.1.103:6379> get user.1.name
  3. (error) ERR operation not permitted
  4. redis 192.168.1.103:6379>

为什么是error呢,当然是因为连接103时没传递密码了,退出重新连

 

 


  1. redis 192.168.1.103:6379> quit
  2. [root@xsf001 ~]# redis-cli -h 192.168.1.103 -p 6379 -a ”hi, coder”
  3. redis 192.168.1.103:6379> get user.1.name
  4. “zhangsan”

看到zhangsan,说明你已经连接成功了。关于get、set    用法,在下个blog中讲,没有耐心的观众可以直接看这里:http://redis.io/commands#string

 

原文地址

Check Also

redis 排序

本篇文章介绍下redis排序命 ...

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>