在CentOS7.5下安装配置Redis

本文涉及的产品
云数据库 Redis 版,社区版 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
相关文章
|
3月前
|
应用服务中间件 Linux 网络安全
centos7 下离线安装gcc g++ nginx,并配置nginx进行网络流转发
centos7 下离线安装gcc g++ nginx,并配置nginx进行网络流转发
104 0
|
1月前
|
Java Linux
Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
【2月更文挑战第16天】Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
29 0
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
93 1
|
2月前
|
存储 NoSQL Linux
centos7部署redis以及多实例
centos7部署redis以及多实例
54 0
|
10天前
|
网络协议
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
13 0
|
30天前
|
运维 Linux 应用服务中间件
Centos7如何配置firewalld防火墙规则
Centos7如何配置firewalld防火墙规则
40 0
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
194 0
|
1月前
|
存储 监控 Linux
Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
【2月更文挑战第17天】Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
28 1
Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
|
2月前
|
关系型数据库 MySQL Linux
Azkaban【部署 02】CentOS release 7.5安装配置azkaban-3.70.0安装阶段(含已编译的10个安装文件:可直接进行安装)
【2月更文挑战第5天】CentOS release 7.5安装配置azkaban-3.70.0安装阶段(含已编译的10个安装文件:可直接进行安装)
48 7
|
2月前
|
NoSQL Linux Redis
基于centos7.7编译Redis6.0
基于centos7.7 源码编译redis-6.0.6记录
163 2

热门文章

最新文章