美文网首页我爱编程
linux学习之centos7 安装redis

linux学习之centos7 安装redis

作者: _奔波儿灞_ | 来源:发表于2017-09-13 14:27 被阅读156次

redis是什么

redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。

centos7 安装redis

本文的主题是 Redis,我们将要在 CentOS 7 上安装它。编译源代码,安装二进制文件,创建、安装文件。在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就是让 redis 运行的更加可靠和快速。

Paste_Image.png

1.构建redis

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

a)如果没有安装过 GCC 和 Make,那么就使用 yum 安装。
yum install gcc make
b)从官网下载 tar 压缩包。
curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz
c)解压
tar zxvf redis-3.0.4.tar.gz
d)进入解压目录
cd redis-3.0.4
e)使用Make 编译源文件
make

2.安装

a)进入源文件的目录
cd src
b)复制 Redis 的服务器和客户端到 /usr/local/bin
cp redis-server redis-cli /usr/local/bin
c)最好也把 sentinel,benchmark 和 check 复制过去
cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin
d)创建redis 配置文件夹
mkdir /etc/redis
e)在/var/lib/redis 下创建有效的保存数据的目录
mkdir -p /var/lib/redis/6379

3.几个常见系统参数的配置

a)配置 vm.overcommit_memory 为1,这可以避免数据被截断
sysctl -w vm.overcommit_memory=1
b)修改 backlog 连接数的最大值超过 redis.conf 中的 tcp-backlog 值,即默认值511
sysctl -w net.core.somaxconn=512
c)取消对透明巨页内存(transparent huge pages)的支持

因为这会造成 redis 使用过程产生延时和内存访问问题

echo never > /sys/kernel/mm/transparent_hugepage/enabled

4.redis.conf 配置

redis.conf 是 redis 的配置文件,然而你会看到这个文件的名字是 6379.conf ,而这个数字就是 redis 监听的网络端口。如果你想要运行超过一个的 redis 实例,推荐用这样的名字。比如你想在运行一个在7379端口,同样操作一遍就可以了。

a)复制示例的 redis.conf 到 /etc/redis/6379.conf
cp redis.conf /etc/redis/6379.conf
b)编辑这个文件并且配置参数
vi /etc/redis/6379.conf
c)daemonize

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

daemonize no

我下载的这个版本默认就no,所以不用修改

c)pidfile

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

pidfile /var/run/redis_6379.pid
d)port

设置端口,这里多说一句,最好不要使用默认的6379端口,且不要开放公网端口。这是由于Redis 未授权访问是一直存在的问题。
具体细节:Redis 未授权访问配合 SSH key 文件利用分析
我这边是做例子所以没改

port 6379
e)loglevel

日志级别

loglevel notice
f)logfile

日志路径

logfile /var/log/redis_6379.log
g)密码安全

redis默认是没有密码的,但是建议大家还是设置好自己密码

requirepass  yourpassword
h)dir

数据目录

dir /var/lib/redis/6379

5.启动redis

启动redis非常简单,直接./redis-server就可以启动服务端了,还可以用下面的方法指定要加载的配置文件:

./redis-server /etc/redis/6379.conf

这时如果你可以看到文章开头的图,就代表启动成功了

当然您可以设置开机启动:
你可以使用 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=forking
ExecStart=/etc/init.d/redis_6379 start
ExecStop=/etc/init.d/redis_6379 stop
[Install]
WantedBy=multi-user.target

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

vm.overcommit_memory = 1
net.core.somaxconn=512

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

echo never > /sys/kernel/mm/transparent_hugepage/enabled

最后通过service命令,start redis_6379.service 来启动 当然可以通过其他命令完成对它的关闭stop,状态status查询等操作。

6.访问redis

如果你没设置密码,可以通过client直接访问,如果设置了密码,可以通过下面的命令访问


无密码:
redis-cli -p 6379
有密码:
redis-cli -p 6379 -a yourpassword

总结

这样我们就完成了redis下载安装及简单配置工作。通过设置这些选项你就可以部署 redis 服务到很多简单的场景,然而在 redis.conf 还有很多为复杂环境准备的 redis 选项。在一些情况下,你可以使用 replicationSentinel 来提高可用性,或者将数据分散在多个服务器上,创建服务器集群。

建议大家还是做下redis的集群

ps:现在很多云服务平台也提供redis服务,例如阿里云数据库redis
但是收费稍微有点小贵。

参考资料

超强、超详细Redis数据库入门教程
如何在 CentOS 7 上安装 Redis 服务器

相关文章

网友评论

    本文标题:linux学习之centos7 安装redis

    本文链接:https://www.haomeiwen.com/subject/vxgksxtx.html