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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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
相关文章
|
23天前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
190 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
1月前
|
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时可能遇到的问题和解决方案。
121 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
19天前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
1月前
|
NoSQL Ubuntu Linux
Redis 安装
10月更文挑战第14天
50 1
|
9天前
|
NoSQL 编译器 Linux
【赵渝强老师】Redis的安装与访问
本文基于Redis 6.2版本,详细介绍了在CentOS 7 64位虚拟机环境中部署Redis的步骤。内容包括安装GCC编译器、创建安装目录、解压安装包、编译安装、配置文件修改、启动服务及验证等操作。视频讲解和相关图片帮助理解每一步骤。
|
1月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
237 3
|
1月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
106 64
|
1月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
113 61
|
8天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
9天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。