目录
构建 Redis
安装
系统参数
redis.conf
daemonize
pidfile
port
loglevel
logfile
dir
安全
Unix sockets
requirepass
rename-command
快照
开机时启动
什么是Linux系统
首页 数据库 Redis 如何在CentOS 7上安装Redis服务器

如何在CentOS 7上安装Redis服务器

May 31, 2023 am 08:25 AM
linux redis 服务器

Redis是使用使用 ANSI C 编写的开源的多平台数据存储软件,Redis 可以支持 Lua, C, Java, Python, Perl, PHP 和其他很多语言。

构建 Redis

redis 目前没有官方 RPM 安装包,我们需要从源代码编译,而为了要编译就需要安装 Make 和 GCC。

如果没有安装过 GCC 和 Make,那么就使用 yum 安装。

yum install gcc make
登录后复制

从官网下载 tar 压缩包。

curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz
登录后复制

解压缩。

tar zxvf redis-3.0.4.tar.gz
登录后复制

进入解压后的目录。

cd redis-3.0.4
登录后复制

使用Make 编译源文件。

make
登录后复制

安装

进入源文件的目录。

cd src
登录后复制

复制 Redis 的服务器和客户端到 /usr/local/bin。

cp redis-server redis-cli /usr/local/bin
登录后复制

最好也把 sentinel,benchmark 和 check 复制过去。

cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin
登录后复制

创建redis 配置文件夹。

mkdir /etc/redis
登录后复制

在/var/lib/redis 下创建有效的保存数据的目录

mkdir -p /var/lib/redis/6379
登录后复制
系统参数

为了让 redis 正常工作需要配置一些内核参数。

配置 vm.overcommit_memory 为1,这可以避免数据被截断,详情见此。

sysctl -w vm.overcommit_memory=1
登录后复制

修改 backlog 连接数的最大值超过 redis.conf 中的 tcp-backlog 值,即默认值511。更多有关基于 sysctl 的 IP 网络隧道的资讯可以在 kernel.org 上找到。

sysctl -w net.core.somaxconn=512
登录后复制

取消对透明巨页内存(transparent huge pages)的支持,因为这会造成 redis 使用过程产生延时和内存访问问题。

echo never > /sys/kernel/mm/transparent_hugepage/enabled
登录后复制
登录后复制

redis.conf

redis.conf 是 redis 的配置文件,然而你会看到这个文件的名字是 6379.conf ,而这个数字就是 redis 监听的网络端口。若要运行多个 redis 实例,建议使用以下命名方式。

复制示例的 redis.conf 到 /etc/redis/6379.conf。

cp redis.conf /etc/redis/6379.conf
登录后复制

现在编辑这个文件并且配置参数。

vi /etc/redis/6379.conf
登录后复制
daemonize

设置 daemonize 为 no,systemd 需要它运行在前台,否则 redis 会突然挂掉。

daemonize no
登录后复制
pidfile

设置 pidfile 为 /var/run/redis_6379.pid。

pidfile /var/run/redis_6379.pid
登录后复制
port

如果不准备用默认端口,可以修改。

port 6379
登录后复制
loglevel

设置日志级别。

loglevel notice
登录后复制
logfile

修改日志文件路径。

logfile /var/log/redis_6379.log
登录后复制
dir

设置目录为 /var/lib/redis/6379

dir /var/lib/redis/6379
登录后复制

安全

下面有几个可以提高安全性的操作。

Unix sockets

由于客户端程序和服务器端程序通常在同一台机器上运行,因此不必监听网络 socket。如果这和你的使用情况类似,你就可以使用 unix socket 替代网络 socket,为此你需要配置 port 为0,然后配置下面的选项来启用 unix socket。

设置 unix socket 的套接字文件。

 unixsocket /tmp/redis.sock
登录后复制

限制 socket 文件的权限。

unixsocketperm 700
登录后复制

现在为了让 redis-cli 可以访问,应该使用 -s 参数指向该 socket 文件。

redis-cli -s /tmp/redis.sock
登录后复制
requirepass

你可能需要远程访问,如果是,那么你应该设置密码,这样子每次操作之前要求输入密码。

requirepass "bTFBx1NYYWRMTUEyNHhsCg"
登录后复制
rename-command

想象一下如下指令的输出。是的,这会输出服务器的配置,所以你应该在任何可能的情况下拒绝这种访问。

CONFIG GET *
登录后复制

您可以使用“rename-command”命令来限制或禁止该条或其他指令的使用。你必须提供一个命令名和替代的名字。为了更安全地禁止某个命令,应将其替代名称设置为空字符串,这样任何人都无法猜测命令的名称。

rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"rename-command FLUSHALL ""rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"
登录后复制

如何在CentOS 7上安装Redis服务器

使用密码通过 unix socket 访问,和修改命令

快照

默认情况下,redis 会周期性的将数据集转储到我们设置的目录下的 dump.rdb 文件。你可以使用 save 命令配置转储的频率,它的第一个参数是以秒为单位的时间帧,第二个参数是在数据文件上进行修改的数量。

每隔15分钟并且最少修改过一次键。

save 900 1
登录后复制

每隔5分钟并且最少修改过10次键。

save 300 10
登录后复制

每隔1分钟并且最少修改过10000次键。

save 60 10000
登录后复制

文件 /var/lib/redis/6379/dump.rdb 包含了从上次保存以来内存里数据集的转储数据。因为它先创建临时文件然后替换之前的转储文件,这里不存在数据破坏的问题,你不用担心,可以直接复制这个文件。

开机时启动

你可以使用 systemd 将 redis 添加到系统开机启动列表。

复制示例的 init_script 文件到 /etc/init.d,注意脚本名所代表的端口号。

cp utils/redis_init_script /etc/init.d/redis_6379
登录后复制

现在我们要使用 systemd,所以在 /etc/systems/system 下创建一个单位文件名字为 redis_6379.service。

vi /etc/systemd/system/redis_6379.service
登录后复制

填写下面的内容,详情可见 systemd.service。

[Unit]Description=Redis on port 6379[Service]Type=forkingExecStart=/etc/init.d/redis_6379 startExecStop=/etc/init.d/redis_6379 stop[Install]WantedBy=multi-user.target
登录后复制

现在添加我之前在 /etc/sysctl.conf 里面修改过的内存过量使用和 backlog 最大值的选项。

vm.overcommit_memory = 1net.core.somaxconn=512
登录后复制

对于透明巨页内存支持,并没有直接 sysctl 命令可以控制,所以需要将下面的命令放到 /etc/rc.local 的结尾。

echo never > /sys/kernel/mm/transparent_hugepage/enabled
登录后复制
登录后复制

这样就可以启动了,通过设置这些选项你就可以部署 redis 服务到很多简单的场景,然而在 redis.conf 还有很多为复杂环境准备的 redis 选项。在一些情况下,你可以使用 replication 和 Sentinel 来提高可用性,或者将数据分散在多个服务器上,创建服务器集群。

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

以上是如何在CentOS 7上安装Redis服务器的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

redis集群模式怎么搭建 redis集群模式怎么搭建 Apr 10, 2025 pm 10:15 PM

Redis集群模式通过分片将Redis实例部署到多个服务器,提高可扩展性和可用性。搭建步骤如下:创建奇数个Redis实例,端口不同;创建3个sentinel实例,监控Redis实例并进行故障转移;配置sentinel配置文件,添加监控Redis实例信息和故障转移设置;配置Redis实例配置文件,启用集群模式并指定集群信息文件路径;创建nodes.conf文件,包含各Redis实例的信息;启动集群,执行create命令创建集群并指定副本数量;登录集群执行CLUSTER INFO命令验证集群状态;使

redis底层怎么实现 redis底层怎么实现 Apr 10, 2025 pm 07:21 PM

Redis 使用哈希表存储数据,支持字符串、列表、哈希表、集合和有序集合等数据结构。Redis 通过快照 (RDB) 和追加只写 (AOF) 机制持久化数据。Redis 使用主从复制来提高数据可用性。Redis 使用单线程事件循环处理连接和命令,保证数据原子性和一致性。Redis 为键设置过期时间,并使用 lazy 删除机制删除过期键。

redis如何查看版本号 redis如何查看版本号 Apr 10, 2025 pm 05:57 PM

要查看 Redis 版本号,可以使用以下三种方法:(1) 输入 INFO 命令,(2) 使用 --version 选项启动服务器,(3) 查看配置文件。

redis-server找不到怎么办 redis-server找不到怎么办 Apr 10, 2025 pm 06:54 PM

解决redis-server找不到问题的步骤:检查安装,确保已正确安装Redis;设置环境变量REDIS_HOST和REDIS_PORT;启动Redis服务器redis-server;检查服务器是否运行redis-cli ping。

redis查询的key怎么唯一 redis查询的key怎么唯一 Apr 10, 2025 pm 07:03 PM

Redis采用五种策略确保键的唯一性:1. 名称空间分隔;2. HASH数据结构;3. SET数据结构;4. 字符串键的特殊字符;5. Lua脚本验证。具体策略的选择取决于数据组织、性能和扩展性需求。

redis怎么查看所有的key redis怎么查看所有的key Apr 10, 2025 pm 07:15 PM

要查看 Redis 中的所有键,共有三种方法:使用 KEYS 命令返回所有匹配指定模式的键;使用 SCAN 命令迭代键并返回一组键;使用 INFO 命令获取键的总数。

redis zset怎么使用 redis zset怎么使用 Apr 10, 2025 pm 07:27 PM

Redis 有序集合(ZSet)用于存储有序元素集合,并按关联分数进行排序。ZSet 的用法步骤包括:1. 创建 ZSet;2. 添加成员;3. 获取成员分数;4. 获取排名;5. 获取排名范围的成员;6. 删除成员;7. 获取元素个数;8. 获取分数范围内的成员个数。

redis如何实现序列化 redis如何实现序列化 Apr 10, 2025 pm 05:48 PM

Redis 使用 RDB 和 AOF 两种序列化方式存储数据。RDB 快照生成速度快、占用空间小,但不支持增量更新。AOF 日志记录每条命令,支持增量更新但速度较慢、占用空间大。通常建议同时使用 RDB 和 AOF 以兼顾速度和数据完整性。

See all articles