搭建Redis服务器

Posted IT资料群1085043784

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建Redis服务器相关的知识,希望对你有一定的参考价值。

1 案例1:搭建Redis服务器

1.1 问题

  • 具体要求如下:
  • 在主机 192.168.4.51 上安装并启用 redis 服务
  • 设置变量test,值为123
  • 查看变量test的值

1.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:搭建redis服务器

1)安装redis服务器

  1. [[email protected] ~]# cd redis
  2. [[email protected] redis]# ls
  3. lnmp redis-4.0.8.tar.gz
  4. [[email protected] redis]# yum -y install gcc gcc-c++ make
  5. [[email protected] redis]# tar -zxf redis-4.0.8.tar.gz
  6. [[email protected] redis]# cd redis-4.0.8/
  7. [[email protected] redis-4.0.8]# ls
  8. 00-RELEASENOTES CONTRIBUTING deps Makefile README.md runtest runtest-sentinel src utils
  9. BUGS COPYING INSTALL MANIFESTO redis.conf runtest-cluster sentinel.conf tests
  10. [[email protected] redis-4.0.8]# make
  11. [[email protected] redis-4.0.8]# make install
  12. [[email protected] redis-4.0.8]# cd utils/
  13. [[email protected] utils]# ./install_server.sh
  14. Welcome to the redis service installer
  15. This script will help you easily set up a running redis server
  16. Please select the redis port for this instance: [6379]
  17. Selecting default: 6379
  18. Please select the redis config file name [/etc/redis/6379.conf]
  19. Selected default - /etc/redis/6379.conf
  20. Please select the redis log file name [/var/log/redis_6379.log]
  21. Selected default - /var/log/redis_6379.log
  22. Please select the data directory for this instance [/var/lib/redis/6379]
  23. Selected default - /var/lib/redis/6379
  24. Please select the redis executable path [/usr/local/bin/redis-server]
  25. Selected config:
  26. Port : 6379                  //端口号
  27. Config file : /etc/redis/6379.conf //配置文件目录
  28. Log file : /var/log/redis_6379.log //日志目录
  29. Data dir : /var/lib/redis/6379 //数据库目录
  30. Executable : /usr/local/bin/redis-server //启动程序的目录
  31. Cli Executable : /usr/local/bin/redis-cli //命令行的连接工具
  32. Is this ok? Then press ENTER to go on or Ctrl-C to abort. //回车完成配置
  33. Copied /tmp/6379.conf => /etc/init.d/redis_6379 //服务启动脚本
  34. Installing service...
  35. Successfully added to chkconfig!
  36. Successfully added to runlevels 345!
  37. Starting Redis server...
  38. Installation successful!        //安装成功

2)查看状态

  1. [[email protected] utils]# /etc/init.d/redis_6379 status
  2. Redis is running (15203)

3)查看监听的端口

  1. [[email protected] utils]# netstat -antupl |grep :6379
  2. tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 15203/redis-server
  3. [[email protected] utils]# ps -C redis-server
  4. PID TTY TIME CMD
  5. 15203 ? 00:00:00 redis-server

4)停止服务

  1. [[email protected] utils]# /etc/init.d/redis_6379 stop
  2. Stopping ...
  3. Waiting for Redis to shutdown ...
  4. Redis stopped
  5. [[email protected] utils]# /etc/init.d/redis_6379 status        
  6. //再次查看,显示 没有那个文件或目录
  7. cat: /var/run/redis_6379.pid: No such file or directory
  8. Redis is running ()

5)连接redis

  1. [[email protected] utils]# /etc/init.d/redis_6379 start
  2. Starting Redis server...
  3. [[email protected] utils]# redis-cli
  4. 127.0.0.1:6379> ping
  5. PONG            //PONG说明服务正常

6)?设置变量test,值为123,查看变量test的值

常用指令操作:

set keyname keyvalue 存储

get keyname 获取

  1. 127.0.0.1:6379> set test 123
  2. OK
  3. 127.0.0.1:6379> get test
  4. "123"

del keyname 删除变量

  1. 127.0.0.1:6379> set k1 v1
  2. OK
  3. 127.0.0.1:6379> get k1
  4. "v1"
  5. 127.0.0.1:6379> del k1
  6. (integer) 1

keys * 打印所有变量

  1. 127.0.0.1:6379> keys *
  2. 1) "test"

EXISTS keyname 测试是否存在

  1. 127.0.0.1:6379> exists k1
  2. (integer) 0

type keyname 查看类型

  1. 127.0.0.1:6379> set k2 v1
  2. OK
  3. 127.0.0.1:6379> type k2
  4. string

move keyname dbname 移动变量

  1. 127.0.0.1:6379> move k2 1            //移动k2到1库
  2. (integer) 1

select 数据库编号0-15 切换库

  1. 127.0.0.1:6379> select 1        //切换到1库
  2. OK
  3. 127.0.0.1:6379[1]> keys *            //查看有k2
  4. 1) "k2"

expire keyname 10 设置有效时间

  1. 127.0.0.1:6379[1]> EXPIRE k2 10
  2. (integer) 1

ttl keyname 查看生存时间

  1. 127.0.0.1:6379[1]> ttl k2

flushall 删除所有变量

  1. 127.0.0.1:6379[1]> FLUSHALL
  2. OK

save 保存所有变量

  1. 127.0.0.1:6379[1]> save
  2. OK

shutdown 关闭redis服务

  1. 127.0.0.1:6379[1]> SHUTDOWN

2 案例3:修改Redis服务运行参数

2.1 问题

  • 具体要求如下:
  • 端口号 6351
  • IP地址 192.168.4.51
  • 连接密码 123456
  • 客户端连接Redis服务

2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:修改redis运行参数

1)

  1. [[email protected] utils]# cp /etc/redis/6379.conf /root/6379.conf     
  2. //可以先备份一份,防止修改错误没法还原
  3. [[email protected] utils]# /etc/init.d/redis_6379 stop
  4. [[email protected] utils]# vim /etc/redis/6379.conf
  5. ...
  6. bind 192.168.4.51                //设置服务使用的ip
  7. port 6351                            //更改端口号
  8. requirepass 123456                //设置密码
  9. [[email protected] utils]# /etc/init.d/redis_6379 start
  10. Starting Redis server...
  11. [[email protected] utils]# ss -antul | grep 6351        //查看有端口6351
  12. tcp LISTEN 0 128 192.168.4.51:6351 *:*

由于修改了配置文件所以在连接的时候需要加上ip和端口

  1. [[email protected] utils]# redis-cli -h 192.168.4.51 -p 6351
  2. 192.168.4.51:6351> ping
  3. (error) NOAUTH Authentication required.
  4. 192.168.4.51:6351> auth 123456            //输入密码才能操作(因为之前设置过密码)
  5. OK
  6. 192.168.4.51:6351> ping
  7. PONG

还可以直接在命令行输入密码连接

  1. [[email protected] utils]# redis-cli -h 192.168.4.51 -p 6351 -a 123456
  2. 192.168.4.51:6351> ping
  3. PONG

2)停止服务

由于修改Redis服务运行参数,所以在停止服务的时候也不能用默认的方法停止

  1. [[email protected] utils]# /etc/init.d/redis_6379 stop        //停止失败
  2. Stopping ...
  3. Could not connect to Redis at 127.0.0.1:6379: Connection refused
  4. Waiting for Redis to shutdown ...
  5. Waiting for Redis to shutdown ...
  6. Waiting for Redis to shutdown ...
  7. Waiting for Redis to shutdown ...
  8. ...
  9. [[email protected] utils]# redis-cli -h 192.168.4.51 -p 6351 -a 123456 shutdown    
  10. //停止成功
  11. [[email protected] utils]# ss -antul | grep 6351        //查看没有端口

3 案例2:部署LNMP+Redis

3.1 问题

  • 具体要求如下:
  • 在主机 192.168.4.52 上部署LNMP 环境
  • 把数据存储到本机的redis服务中

3.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:部署LNMP+Redis

1)安装redis,(不会搭建的请参考案例1)

2)安装php支持的功能模块(52上面操作)

  1. [[email protected] utils]# which php
  2. /usr/bin/which: no php in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
  3. [[email protected] utils]# php -m
  4. bash: php: command not found...
  5. [[email protected] utils]# yum -y install php-cli
  6. [[email protected] utils]# which php
  7. /usr/bin/php
  8. [[email protected] utils]# php -m
  9. [PHP Modules]
  10. bz2
  11. calendar
  12. Core
  13. ctype
  14. curl
  15. date
  16. ereg
  17. exif
  18. fileinfo
  19. filter
  20. ftp
  21. gettext
  22. gmp
  23. hash
  24. iconv
  25. json
  26. libxml
  27. mhash
  28. openssl
  29. pcntl
  30. pcre
  31. Phar
  32. readline
  33. Reflection
  34. session
  35. shmop
  36. SimpleXML
  37. sockets
  38. SPL
  39. standard
  40. tokenizer
  41. xml
  42. zip
  43. zlib
  44. [Zend Modules]

3)安装连接redis的功能模块

  1. [[email protected] utils]# php -m | grep -i redis        //没有redis模块
  2. [[email protected] redis]# cd lnmp/
  3. [[email protected] lnmp]# ls
  4. nginx-1.12.2.tar.gz
  5. php-devel-5.4.16-42.el7.x86_64.rpm
  6. php-fpm-5.4.16-42.el7.x86_64.rpm
  7. php-redis-2.2.4.tar.gz
  8. [[email protected] lnmp]# tar -zxf php-redis-2.2.4.tar.gz
  9. [[email protected] lnmp]# cd phpredis-2.2.4/
  10. [[email protected] phpredis-2.2.4]# which phpize
  11. /usr/bin/phpize
  12. [[email protected] phpredis-2.2.4]# phpize
  13. Can‘t find PHP headers in /usr/include/php
  14. The php-devel package is required for use of this command.
  15. [[email protected] phpredis-2.2.4]# yum -y install autoconf automake    pcre-devel
  16. [[email protected] phpredis-2.2.4]# cd ..
  17. [[email protected] lnmp]# rpm -ivh php-devel-5.4.16-42.el7.x86_64.rpm
  18. [[email protected] lnmp]# cd phpredis-2.2.4/
  19. [[email protected] phpredis-2.2.4]# phpize     //生成一个php的文件
  20. Configuring for:
  21. PHP Api Version: 20100412
  22. Zend Module Api No: 20100525
  23. Zend Extension Api No: 220100525
  24. [[email protected] phpredis-2.2.4]# find / -name "php-config"
  25. /usr/bin/php-config
  26. [[email protected] phpredis-2.2.4]# ./configure --with-php-config=/usr/bin/php-config
  27. //指定模块编译的路径
  28. [[email protected] phpredis-2.2.4]# make && make install
  29. ...
  30. Installing shared extensions: /usr/lib64/php/modules/ //模块文件存放的路径
  31. [[email protected] phpredis-2.2.4]# ls /usr/lib64/php/modules/
  32. curl.so fileinfo.so json.so phar.so redis.so zip.so
  33. [[email protected] phpredis-2.2.4]# vim /etc/php.ini
  34. 728 extension_dir = "/usr/lib64/php/modules/"
  35. 729 ; On windows:
  36. 730 extension = "redis.so"
  37. [[email protected] phpredis-2.2.4]# php -m | grep -i redis
  38. redis        //出现redis

4)安装nginx(52上面操作)

  1. [[email protected] ~]# cd redis/lnmp/
  2. [[email protected] lnmp]# ls
  3. nginx-1.12.2.tar.gz
  4. [[email protected] lnmp]# tar -xf nginx-1.12.2.tar.gz
  5. [[email protected] lnmp]# cd nginx-1.12.2/
  6. [[email protected] nginx-1.12.2]# yum -y install gcc pcre-devel openssl-devel
  7. [[email protected] nginx-1.12.2]# useradd -s /sbin/nologin nginx
  8. [[email protected] nginx-1.12.2]# ./configure --user=nginx --group=nginx --with-http_ssl_module
  9. [[email protected] nginx-1.12.2]# make && make install
  10. [[email protected] nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /sbin/
  11. [[email protected] nginx-1.12.2]# cd /usr/local/nginx/html/
  12. [[email protected] html]# echo "aa" > text.html
  13. [[email protected] html]# yum -y install mariadb mariadb-server mariadb-devel php php-mysql
  14. [[email protected] html]# cd /root/redis/lnmp/
  15. [roo[email protected] lnmp]# rpm -ivh php-fpm-5.4.16-42.el7.x86_64.rpm        //安装php
  16. [[email protected] lnmp]# cd /usr/local/nginx/html/
  17. [[email protected] html]# vim test.php
  18. <?php
  19. $i=33;
  20. $j=44;
  21. if($i<$j){
  22. echo "oK";
  23. }
  24. else{
  25. echo "error";
  26. }
  27. #echo $i;
  28. ?>
  29. [[email protected] html]# php test.php         //在命令行测试
  30. oK
  31. [[email protected] html]# systemctl restart mariadb
  32. [[email protected] html]# systemctl restart php-fpm
  33. [[email protected] html]# vim /usr/local/nginx/conf/nginx.conf
  34. ...
  35. location ~ .php$ {
  36. root html;
  37. fastcgi_pass 127.0.0.1:9000;
  38. fastcgi_index index.php;
  39. #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  40. include fastcgi.conf;
  41. }
  42. ...
  43. [[email protected] html]# nginx    //启动nginx
  44. 客户端用火狐浏览器访问:
  45. [[email protected] ~]# firefox 192.168.4.56/text.html        //成功
  46. [[email protected] ~]# firefox 192.168.4.56/test.php        //成功

5)连接redis测试

  1. [[email protected] html]# vim lkredis.php
  2. <?php
  3. $redis = new redis();
  4. $redis->connect(‘192.168.4.51‘,6351);
  5. $redis ->auth("123456");
  6. $redis->set("redistest","666666");
  7. echo $redis->get("redistest");
  8. ?>
  9. [[email protected] html]# php lkredis.php         //命令行测试
  10. 666666

火狐浏览器测试,如图-1所示:

技术图片

图-1

在51上面查看,有数据存入

  1. [[email protected] lnmp]# redis-cli -h 192.168.4.51 -p 6351 -a 123456
  2. 192.168.4.51:6351> ping
  3. PONG
  4. 192.168.4.51:6351> keys *
  5. 1) "redistest"
  6. 192.168.4.51:6351> get redistest
  7. "666666"
  8. 192.168.4.51:6351>

以上是关于搭建Redis服务器的主要内容,如果未能解决你的问题,请参考以下文章

一般Redis集群搭建采用几台服务器?

[ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器

Redis系列:单机主从模式搭建

搭建redis服务器

Redis集群搭建完整流程演示

redis集群搭建