企业实战(3) Redis服务部署和配置详解

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 企业实战(3) Redis服务部署和配置详解

前言:

10.png

环境介绍:

CentOS 7.5
Redis 5.0.0
gcc

下载:


http://download.redis.io/releases/


安装redis:

[root@localhost ~]#yum -y install gcc
[root@localhost ~]# mkdir redis
[root@localhost redis]# wget http://download.redis.io/releases/redis-5.0.0.tar.gz
[root@localhost ~]# cd redis/
[root@localhost redis]# tar -xvf redis-5.0.0.tar.gz 
redis-5.0.0/
redis-5.0.0/.gitignore
redis-5.0.0/00-RELEASENOTES
...
[root@localhost redis]# ls
redis-5.0.0  redis-5.0.0.tar.gz
[root@localhost redis]# cd redis-5.0.0
[root@localhost redis-5.0.0]# make && make install
...
make[1]: 离开目录“/root/redis/redis-5.0.0/src”
make[1]: 进入目录“/root/redis/redis-5.0.0/src”
Hint: It's a good idea to run 'make test' ;)
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
make[1]: 离开目录“/root/redis/redis-5.0.0/src”

初始化配置:

[root@localhost redis-5.0.0]# ./utils/install_server.sh  //一路回车
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

管理服务:

[root@localhost redis-5.0.0]# /etc/init.d/redis_6379 stop  //停止服务
[root@localhost redis-5.0.0]# /etc/init.d/redis_6379 start  //启动服务
[root@localhost redis-5.0.0]# ps -C redis-server   //查看进程
   PID TTY          TIME CMD
 14540 ?        00:00:00 redis-server
[root@localhost redis-5.0.0]# ss -antulp | grep :6379   //查看端口
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=14540,fd=6))

连接服务:

[root@localhost redis-5.0.0]# redis-cli 
127.0.0.1:6379> set name bob    //存储数据,变量名为name,值为bob
OK
127.0.0.1:6379> get name    //查看变量name的值
"bob"
127.0.0.1:6379> keys *       //查询已有的变量
1) "name"
127.0.0.1:6379> exit

常用命令:

- set 变量名 变量值                 //存储1个变量值
- mset 变量名 变量值 变量名 变量值...      //存储多个变量值
- get 变量名                   //查询1个变量的值
- mget 变量名                 //查询多个变量的值
- select 数据库编号0-15(默认只有16个库)      //切换库
- keys *                  //显示所有的变量名
- keys ?                  //显示只有一个字符的变量名
- keys a?                //显示以a开头的2个字符的变量名
- exists 变量名            //测试某个变量是否存在
- ttl 变量名               //查看变量生存时间(-1为永久生存)
- type 变量名               //查看变量的类型
- move 变量名 数据库编号   //移动某变量到指定库中
- expire 变量名 时间       //设置变量的有效时间
- del 变量名              //删除指定的变量
- flushall                //删除内存里所有的变量
- flushdb               //删除所在的库中的所有变量
- save                 //保存所有变量到硬盘中
- shutdown            //停止redis服务

常用配置项:

[root@ku1-50 ~]# vim /etc/redis/6379.conf
93  port 6379                //端口
70  bind 127.0.0.1           //IP地址
137 daemonize yes            //守护进程方式运行
187 databases 16             //数据库个数
172 logfile /var/log/redis_6379.log     //日志文件
533 # maxclients 10000           //并发连接数量
264 dir /var/lib/redis/6379      //数据库目录

内存管理:

11.png

默认使用noeviction清除策略。


优化设置:

[root@localhost redis-5.0.0]# vim /etc/redis/6379.conf
560 # maxmemory <bytes>           
                //最大内存
598 # maxmemory-policy noeviction    
               //默认使用的内存清除策略为noeviction
609 # maxmemory-samples 5    
              //默认选取变量(key)模板的个数(针对lru、ttl策略)为5个

连接配置:

[root@localhost redis-5.0.0]# vim /etc/redis/6379.conf
70 bind 192.168.2.159         //IP地址
93 port 6379                  //端口
508 requirepass 123456        //密码
[root@localhost redis-5.0.0]# /etc/init.d/redis_6379 stop
[root@localhost redis-5.0.0]# /etc/init.d/redis_6379 start
[root@localhost redis-5.0.0]# redis-cli    //未携带修改的参数
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
注意:如果在配置文件中修改了密码、端口、IP地址,那么在连接redis服务的时候必须带上更改的参数才可以连接上服务。
--明文密码连接
[root@localhost redis-5.0.0]# redis-cli -h 192.168.2.159 -a 123456       //密码明文连接
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.2.159:6379> keys *
1) "name"
192.168.2.159:6379> exit
--交互式密码连接
[root@localhost redis-5.0.0]# redis-cli -h 192.168.2.159   
192.168.2.159:6379> keys *         //不输入密码无法进行操作
(error) NOAUTH Authentication required.
192.168.2.159:6379> auth 123456
OK
192.168.2.159:6379> keys *
1) "name"
192.168.2.159:6379> exit

注意:


 在修改了以上三种参数(密码、端口、IP地址)中的任意一种后,都无法再使用脚本来停止服务(启动服务不影响),需要对脚本进行修改。

[root@localhost ~]# /etc/init.d/redis_6379 stop
Stopping ...
Could not connect to Redis at 127.0.0.1:6379: Connection refused
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...    //已经使用脚本无法停止服务了
[root@localhost ~]# ss -antulp | grep :6379
tcp    LISTEN     0      128    192.168.2.159:6379                  *:*                   users:(("redis-server",pid=14558,fd=6))
[root@localhost ~]# redis-cli -h 192.168.2.159 -a 123456 shutdown      
           //只能这样停止redis服务
[root@localhost ~]# ss -antulp | grep :6379

修改停止服务脚本

[root@localhost ~]# vim /etc/init.d/redis_6379
43  $CLIEXEC -p $REDISPORT shutdown
         ↓↓↓↓根据更改的参数将以上配置修改为↓↓↓↓
43 $CLIEXEC -h 192.168.2.159 -p 6379 -a 123456 shutdown
[root@localhost ~]# /etc/init.d/redis_6379 stop  //使用脚本停止服务
Stopping ...
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
Redis stopped
[root@localhost ~]# ss -antulp | grep :6379   //停止服务成功
[root@localhost ~]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@localhost ~]# ss -antulp | grep :6379
tcp    LISTEN     0      128    192.168.2.159:6379                  *:*                   users:(("redis-s


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
27天前
|
NoSQL 安全 测试技术
Redis游戏积分排行榜项目中通义灵码的应用实战
Redis游戏积分排行榜项目中通义灵码的应用实战
47 4
|
10天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
70 26
|
28天前
|
监控 NoSQL 网络协议
【Azure Redis】部署在AKS中的应用,连接Redis高频率出现timeout问题
查看Redis状态,没有任何异常,服务没有更新,Service Load, CPU, Memory, Connect等指标均正常。在排除Redis端问题后,转向了AKS中。 开始调查AKS的网络状态。最终发现每次Redis客户端出现超时问题时,几乎都对应了AKS NAT Gateway的更新事件,而Redis服务端没有任何异常。因此,超时问题很可能是由于NAT Gateway更新事件导致TCP连接被重置。
|
1月前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
2月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
86 5
|
2月前
|
缓存 NoSQL Java
Spring Boot与Redis:整合与实战
【10月更文挑战第15天】本文介绍了如何在Spring Boot项目中整合Redis,通过一个电商商品推荐系统的案例,详细展示了从添加依赖、配置连接信息到创建配置类的具体步骤。实战部分演示了如何利用Redis缓存提高系统响应速度,减少数据库访问压力,从而提升用户体验。
123 2
|
2月前
|
存储 NoSQL Redis
Redis 配置
10月更文挑战第14天
31 1
|
2月前
|
存储 缓存 NoSQL
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
70 1
|
2月前
|
NoSQL Linux Shell
Redis 的安装与部署(图文)
Redis 的安装与部署(图文)
|
2月前
|
消息中间件 NoSQL Kafka
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
191 0