在CentOS7.5下安装配置Redis

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介: 在CentOS7.5下安装配置Redis,处理用户登录鉴权

By velin 杨伟聪

Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,对于前端来说,也可以简单的认为它是一个运行在服务端的Storage,用于快速储存的key-value数据库。

我们需要先在服务器上新建一个目录来存放Redis的安装文件

mkdir /home/redis

下载并解压redis安装包

wget http://download.redis.io/releases/redis-5.0.2.tar.gz
tar xzf redis-5.0.2.tar.gz

使用yum安装gcc依赖,遇到选择,输入y即可

yum install gcc

进入redis解压目录下

cd redis-5.0.2

编译代码

make MALLOC=libc

安装

cd src && make install

查看是否安装成功,在src目录下执行

./redis-server

如果一切正常的话,应该会输出

18685:C 13 Dec 12:56:12.507 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18685:C 13 Dec 12:56:12.507 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=18685, just started
18685:C 13 Dec 12:56:12.507 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
                _._                                                 
           _.-``__ ''-._                                            
      _.-``    `.  `_.  ''-._           Redis 4.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                  
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 18685
  `-._    `-._  `-./  _.-'    _.-'                                  
 |`-._`-._    `-.__.-'    _.-'_.-'|                                 
 |    `-._`-._        _.-'_.-'    |           http://redis.io       
  `-._    `-._`-.__.-'_.-'    _.-'                                  
 |`-._`-._    `-.__.-'    _.-'_.-'|                                 
 |    `-._`-._        _.-'_.-'    |                                 
  `-._    `-._`-.__.-'_.-'    _.-'                                  
      `-._    `-.__.-'    _.-'                                      
          `-._        _.-'                                          
              `-.__.-'                                              
 
18685:M 13 Dec 12:56:12.508 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
18685:M 13 Dec 12:56:12.508 # Server initialized
18685:M 13 Dec 12:56:12.508 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
18685:M 13 Dec 12:56:12.508 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
18685:M 13 Dec 12:56:12.508 * Ready to accept connections 

ok!到此Redis已经基本安装完成,但是现在的运行方式是前台运行,会占用整个终端控制台,所以我们需要它可以以后台方式运行,并且设置开机自启,那么接着看后面的操作,首先,Ctrl+C

添加系统服务

需要先回到根目录下修改redis.conf文件

cd ../
vim redis.conf

daemonize no 修改为 daemonize yes
然后创建并编辑redis启动文件,赋予相关权限

touch /etc/init.d/redis
chmod a+x /etc/init.d/redis
vim /etc/init.d/redis

输入以下内容

#! /bin/bash
# chkconfig: - 85 15
PATH=/home/redis/redis-5.0.2
DESC="redis daemon"
NAME=redis
DAEMON=$PATH/src/redis-server
STOP=$PATH/src/redis-cli
CONFIGFILE=$PATH/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON $CONFIGFILE || echo -n "redis already running"
}
do_stop() {
$STOP shutdown || echo -n "redis not running"
}
do_reload() {
do_stop
do_start
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0

Shift+:输入wq保存退出
进入init.d目录

cd /etc/init.d/

注册成服务,并设置开机启动

chkconfig --add redis
chkconfig redis on

最后查看开机启动列表是否设置成功

chkconfig --list

最后执行启动服务命令验证是否成功

#启动服务
service redis start
#停止服务
service redis stop

如果没有报错。证明已经顺利将redis安装完成,并加入到开机启动服务列表内了。
但是目前只能在服务器上连接到redis,并不能远程连接(虽然为了安全,个人感觉不是很推荐直接放开远程访问权限,比较安全的办法是采用绑定IP的方式来进行控制,或者有需要直接上服务器看就好,哈哈。我一定很愚昧...),那么接着我们来配置远端连接相关操作

远程连接配置

首先,我们先配置我们访问需要的密码。打开redis根目录下的redis.conf文件

cd /home/redis/redis-5.0.0
vim ./redis.conf

Shift+:输入/AUTH <PASSWORD>,查找到修改密码的配置,将requirepass前面的#号去掉,并在后面输入你的密码,如

requirepass xxxxx

至此,密码设置就完成了,接下来我们需要配置远程访问权限。远程访问有两种方式,我分别介绍一下

一、较为保守安全的方法

在redis.conf文件内,查找到如下配置

# bind 127.0.0.1

把# bind 127.0.0.1前面的 注释#号去掉,然后把127.0.0.1改成你允许访问你的redis服务器的ip地址,表示只允许该ip进行访问。

二、较为方便不确定ip访问的方法

将上面开启的ip注释回去,不需要绑定ip地址。
接下来我们只需要查找到protected-mode, 将该配置后面改为no,表示允许公网访问。

接着Shift+:输入wq保存退出,重新启动Redis服务即可

service redis stop
service redis start

到这里,我们已经开启了redis的远程访问以及配置好了redis远程访问的密码
最后,国际惯例,开启远程访问端口,redis的默认端口为6379

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

别忘了在服务器提供商后台页面开启安全组哦~

我们可以尝试一下远程连接。推荐的工具是RedisDesktopManager,我提供了下载地址

链接:https://pan.baidu.com/s/10wdMp9ibgZJyWy_CvstnIg 
提取码:whzk 

使用方式可以自行百度了,就是输入服务器ip地址,端口号,以及密码,点击TEST Connect,如果一切顺利的话,就会提示连接成功!

扩展-基于接口形式的redis用户登录授权效验的简单实现

我们知道现在前后端分离的开发方式已经很普及了,但是可能有些人会比较困惑,这种前后端分离的方式,如何对后端接口做登录效验呢?接口如果没有登录授权效验,那不是谁都可以直接从接口获取数据了?
当然,目前有很多解决方案可以解决该问题,这里我只是分享下我的理解,如有错误,请指出。

其实我实现的思路很简单,就是使用redis定时删除值的方法,在用户登录的时候,将用户id注册进redis内,并设置过期时间。并且用户在规定的时间内再次访问,就更新redis的过期时间。这样,接口就只能在用户登录成功并注册进redis后才能成功调用了。我使用的是eggjs,自己封装了状态管理类和中间件来处理相关登录授权操作。

就这样,关于Redis的内容就到这里了!

相关实践学习
基于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
相关文章
|
18天前
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置
|
17天前
|
弹性计算 关系型数据库 MySQL
centos7 mysql安装及配置
本文详细介绍了在阿里云服务器ECS上通过yum源安装MySQL 8.0.12的过程,包括更新yum源、下载并安装MySQL源、解决安装过程中可能遇到的问题等步骤。此外,还介绍了如何启动MySQL服务、设置开机自启、配置登录密码、添加远程登录用户以及处理远程连接异常等问题。适合初学者参考,帮助快速搭建MySQL环境。
95 8
centos7 mysql安装及配置
|
13天前
|
Linux
CentOS 7.x时间同步服务chrony配置详解
文章详细介绍了在CentOS 7.x系统中如何安装和配置chrony服务,以及它与ntpd服务的对比,强调了chrony在时间同步方面的高效性和准确性。
30 1
CentOS 7.x时间同步服务chrony配置详解
|
26天前
|
Ubuntu 网络协议 Linux
liunx各大发行版(centos,rocky,ubuntu,国产麒麟kylinos)网卡配置和包管理方面的区别
本文对比了Linux主要发行版CentOS、Rocky Linux、Ubuntu及国产Kylin在网卡配置与包管理上的差异。
109 1
|
28天前
|
NoSQL 数据可视化 Linux
2022 年超详细步骤讲解 CentOS 7 安装Redis 。解决Redis Desktop Manager 图形化工具连接失败解决 ;connection failed处理。开机自启Redis
这篇文章提供了在CentOS 7上安装Redis的详细步骤,包括上传Redis安装包、解压安装、编译、安装、备份配置文件、修改配置以支持后台运行和设置密码、启动Redis服务、使用客户端连接Redis、关闭Redis服务、解决Redis Desktop Manager图形化工具连接失败的问题、设置Redis开机自启动,以及Redis服务的启动和停止命令。
2022 年超详细步骤讲解 CentOS 7 安装Redis 。解决Redis Desktop Manager 图形化工具连接失败解决 ;connection failed处理。开机自启Redis
|
1月前
|
Linux 开发工具
成功解决:CentOS 7中如何配置修改Vim
这篇文章介绍了如何在CentOS 7系统中配置和修改Vim编辑器的设置。文章首先指导读者如何检查Vim是否已经安装,如果未安装完全,提供了安装Vim的命令。接着,文章详细说明了如何编辑`/etc/vimrc`文件来配置Vim,包括设置显示行号、显示当前模式、光标位置信息、自动缩进和语法高亮等。最后,文章通过对比展示了配置前后使用vi和vim打开相同文本的效果差异,强调了Vim配置后的优势。
成功解决:CentOS 7中如何配置修改Vim
|
1月前
|
存储 安全 Linux
新 CentOS 7 服务器的基本配置
新 CentOS 7 服务器的基本配置
25 1
|
1月前
|
Java Linux Docker
CentOS7 Docker 安装,配置国内镜像
CentOS7 Docker 安装,配置国内镜像
492 2
|
1月前
|
监控 安全 Linux
centos7安全防护配置
centos7安全防护配置
|
2月前
|
网络协议 Linux Python
Python脚本配置Centos静态ip地址
这是一个Python脚本,用于自动化配置CentOS系统的静态IP地址。脚本创建或修改文件,填写接口名(如ens33)、IP地址、子网掩码、网关和DNS。运行时需替换变量值并使用`sudo`以管理员权限执行。完成配置后,它会重启网络服务。注意,用户应根据实际网络环境调整参数。
119 4
Python脚本配置Centos静态ip地址