centos 7安装和使用redis,授权远程连接(★firecat推荐★)(一)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: centos 7安装和使用redis,授权远程连接(★firecat推荐★)(一)

如果是zip格式,先


[root@localhost ~]# yum -y install zip unzip


[root@localhost ~]# unzip *.zip


1、安装,去官网下载源码 https://redis.io/download或者https://github.com/antirez/redis/tree/3.2.12


tar xzf redis-3.2.12.tar.gz


chmod -R 777 redis-3.2.12 #linux一键获取文件夹下所有文件(尤其是.sh文件)权限,-R是递归的意思

cd redis-3.2.12

make


(1)chmod这个步骤很重要,否则/redis/redis-3.2.12/deps/jemalloc会因为没有权限而编译失败


(2)make默认使用jemalloc的内存分配器。


(3)最后可以不需要执行命令make install,免得redis新版本出来不好管理。


(4)如果编译报错:


In file included from adlist.c:34:0:

zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory

#include <jemalloc/jemalloc.h>

                              ^

compilation terminated.

make[1]: *** [adlist.o] Error 1

make[1]: Leaving directory `/home/redis-3.2.12/src'

make: *** [all] Error 2


那么请手动进入jemalloc的文件夹,进行make


# cd deps/jemalloc/


# make


(5)如果编译报错:


debug.o: In function `debugCommand':

/home/redis-3.2.12/src/debug.c:535: undefined reference to `je_mallctl'

/home/redis-3.2.12/src/debug.c:537: undefined reference to `je_mallctl'

/home/redis-3.2.12/src/debug.c:529: undefined reference to `je_malloc_stats_print'

zmalloc.o: In function `zmalloc':

/home/redis-3.2.12/src/zmalloc.c:125: undefined reference to `je_malloc'

/home/redis-3.2.12/src/zmalloc.c:129: undefined reference to `je_malloc_usable_size'


那么,把make命令调整为:make CFLAGS="-march=x86-64"


(6)编译完成后,用户直接在源码文件夹路径下启动redis服务器即可。



2、笔者的redis路径是/root/Downloads/redis/redis-3.2.12/


拷贝配置文件/root/Downloads/redis/redis-3.2.12/redis.conf

到以下路径:

/root/Downloads/redis/redis-3.2.12/src

在终端执行命令,启动redis服务器

[root@localhost src]# ./redis-server redis.conf


如果命令不带配置参数文件,则使用默认的参数。Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 ,第136行

daemonize yes


查看运行状态

[root@localhost src]# ps -ef | grep redis


启动客户端并退出


[root@localhost src]# ./redis-cli

127.0.0.1:6379> quit



3、授权远程客户端连接

redis默认只允许本地访问,要使redis可以远程访问可以修改redis.conf


打开/root/Downloads/redis/redis-3.2.12/src/redis.conf文件,第69行,在NETWORK部分有说明



################################## NETWORK #####################################

# By default, if no "bind" configuration directive is specified, Redis listens

# for connections from all the network interfaces available on the server.

# It is possible to listen to just one or multiple selected interfaces using

# the "bind" configuration directive, followed by one or more IP addresses.

#

# Examples:

#

# bind 192.168.1.100 10.0.0.1

# bind 127.0.0.1 ::1

#

# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the

# internet, binding to all the interfaces is dangerous and will expose the

# instance to everybody on the internet. So by default we uncomment the

# following bind directive, that will force Redis to listen only into

# the IPv4 lookback interface address (this means Redis will be able to

# accept connections only from clients running into the same computer it

# is running).

#

# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES

# JUST COMMENT THE FOLLOWING LINE.

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

bind 127.0.0.1


解决办法:注释掉bind 127.0.0.1可以使所有的ip访问redis,或者把127.0.0.1修改成0.0.0.0


若是想指定多个ip访问,但并不是全部的ip访问,可以bind


注意


下面还有个说明,第88行



# Protected mode is a layer of security protection, in order to avoid that

# Redis instances left open on the internet are accessed and exploited.

#

# When protected mode is on and if:

#

# 1) The server is not binding explicitly to a set of addresses using the

#    "bind" directive.

# 2) No password is configured.

#

# The server only accepts connections from clients connecting from the

# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain

# sockets.

#

# By default protected mode is enabled. You should disable it only if

# you are sure you want clients from other hosts to connect to Redis

# even if no authentication is configured, nor a specific set of interfaces

# are explicitly listed using the "bind" directive.

protected-mode yes


在redis3.2之后,redis增加了protected-mode,在这个模式下,即使注释掉了bind 127.0.0.1,再访问redisd时候还是报错,如下



(error) DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.


修改办法:protected-mode no


4、本地客户端访问


./redis-cli



5、外部客户端想访问进来,还需要考虑防火墙的问题。


CentOS7默认的防火墙是firewall,关掉它


关闭firewall防火墙:sudo systemctl stop firewalld.service


关闭firewall开机启动:sudo systemctl disable firewalld.service


firewall-cmd --state #查看状态


################### 学习资料 redis.conf ############################


在Redis的使用过程,除了知道对Redis五种数据类型的操作方法之外,最主要额就是对redis.conf进行配置了,下面整理出redis.conf中常见的一些配置介绍。

参数说明

redis.conf 配置项说明如下:


1: Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 ,第136行

daemonize no


2: 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定

pidfile /var/run/redis.pid


3: 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字

port 6379


4: 绑定的主机地址

bind 127.0.0.1


5: 当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

timeout 300


6: 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose

loglevel verbose


7: 日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null

logfile stdout


8: 设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id

databases 16


9: 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合

save

Redis默认配置文件中提供了三个条件:

save 900 1

save 300 10

save 60 10000

分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。


10: 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大

rdbcompression yes


相关实践学习
基于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
相关文章
|
10天前
|
NoSQL Linux Redis
linux 下和win下安装redis 并添加开机自启 图文详解
linux 下和win下安装redis 并添加开机自启 图文详解
15 0
|
1月前
|
Linux 网络安全 数据安全/隐私保护
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
144 0
|
1月前
|
存储 JavaScript Linux
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位
|
1月前
|
NoSQL Linux Redis
Linux系统中安装redis+redis后台启动+常见相关配置
Linux系统中安装redis+redis后台启动+常见相关配置
|
3天前
|
关系型数据库 MySQL Linux
centos7安装mysql-带网盘安装包
centos7安装mysql-带网盘安装包
33 2
|
10天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
18 0
|
10天前
|
分布式计算 Hadoop Java
centos 部署Hadoop-3.0-高性能集群(一)安装
centos 部署Hadoop-3.0-高性能集群(一)安装
12 0
|
10天前
|
关系型数据库 MySQL Linux
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
46 0
|
16天前
|
IDE Linux 开发工具
CentOS7.4+REDHAWK2.3.1安装教程——折腾篇
CentOS7.4+REDHAWK2.3.1安装教程——折腾篇
18 0
|
18天前
|
NoSQL Linux Redis
Linux安装Redis
Linux安装Redis
26 0

热门文章

最新文章