在CentOS7.5下安装配置Redis

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容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
相关文章
|
1月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
191 1
|
3月前
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置
|
29天前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
92 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
10天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
46 2
|
14天前
|
监控 安全 Linux
CentOS7下安装配置ntp服务的方法教程
通过以上步骤,您不仅能在CentOS 7系统中成功部署NTP服务,还能确保其配置合理、运行稳定,为系统时间的精确性提供保障。欲了解更多高级配置或遇到特定问题,提供了丰富的服务器管理和优化资源,可作为进一步学习和求助的平台。
30 1
|
1月前
|
NoSQL Linux Redis
在 centos7 下重启/开启 redis 服务器
本文提供了一种在Centos 7操作系统下如何重启Redis服务器的步骤,包括停止Redis服务、确认停止成功以及重新启动Redis服务。
88 2
在 centos7 下重启/开启 redis 服务器
|
24天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
76 1
|
25天前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
183 3
|
26天前
|
存储 监控 Linux
在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践
本文详细介绍了在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践,包括使用 `fdisk` 创建分区、`mkfs` 格式化分区、创建挂载点、编辑 `/etc/fstab` 实现永久挂载等步骤,旨在有效管理服务器磁盘空间,提高系统稳定性和可维护性。
29 1
|
1月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
47 1