解压缩

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。你可以在kernel.org找到更多有关基于 sysctl 的 ip 网络隧道的信息

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

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

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"

快照

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

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

save 900 1

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

save 300 10

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

save 60 10000

开机时启动

你可以使用 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
[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

这样就可以启动了,通过设置这些选项你就可以部署 redis 服务到很多简单的场景

如何在centos7上安装redis的更多相关文章

  1. Redis简介以及如何在Windows上安装Redis

    Redis简介 Redis是一个速度非常快的非关系型内存数据库. Redis提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erla ...

  2. 如何在centos7上安装源码包

    在我们使用linux的过程中,有很多程序是通过红帽官网给的系统中安装的,但是一般来说,系统更新的速度比较慢,如果这个时候我们又想用最新版的该怎么办呢?总不能一直等系统升级吧╮(╯﹏╰)╭所以,我们可以 ...

  3. 如何在Centos7上安装zookeeper 多实例

    一.如何在Centos7上安装zookeeper 多实例 cd /usr/local/src/ wget https://mirrors.tuna.tsinghua.edu.cn/apache/zoo ...

  4. Redis安装--CentOS7上安装Redis

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 1.R ...

  5. 如何在Centos7上安装和使用ZFS

    导读 ZFS文件系统的英文名称为ZettabyteFileSystem,也叫动态文件系统(DynamicFileSystem),是第一个128位文件系统.最初是由Sun公司为Solaris10操作系统 ...

  6. centos7上安装redis以及PHP安装redis扩展(二)

    PHP 使用 Redis 安装 开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP. 接下来让我们安装 PH ...

  7. centos7上安装redis

    关闭防火墙:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启 ...

  8. centos7上安装redis以及PHP安装redis扩展(一)

    1.关闭防火墙: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewal ...

  9. 如何在Centos7上安装&使用docker

    Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且 ...

随机推荐

  1. java编码详解

    举个例子 我们在开发过程中,特别是多种编码格式并存的情况下,很容易遇到乱码问题. 假如有一个GBK编码java文件,然后再使用-Dfile.encoding=GBK参数,写入的文件中哪些是乱码呢.那如 ...

  2. BeanUtils.copyProperties()方法引入不同包

    两个对象之间拷贝相同的属性,可以使用BeanUtils.copyProperties()方法, BeanUtils.copyProperties(obj1,obj2); 提示有三个包可选. A,选择o ...

  3. ci框架中输出sql语句

  4. 关于cookie与session的理解

    服务器端并不能捕获客户端的浏览器关闭事件,因此你关闭浏览器以后,服务器端那个Session还是存在的,要超时以后才被回收,启动一个新的浏览器会启动一个新的session,所以他不认你了session永 ...

  5. 【LeetCode】87. Scramble String

    题目: Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty subs ...

  6. awvs 中文手册详细版

    目录: 0×00.什么是Acunetix Web Vulnarability Scanner ( What is AWVS?) 0×01.AWVS安装过程.主要文件介绍.界面简介.主要操作区域简介(I ...

  7. Android原生跳转React不同页面(undefined is not an object)

    继续上篇文章的demo,由于现在的项目是原生的,打算用部分页面试下react native,那么问题来了:react貌似只有一个入口 index.android.js,那么在不同的原生页面需要跳转到不 ...

  8. Java算法-------无序数组中的最长连续序列---------leetcode128

    Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...

  9. gulp inline

    在html中所有需要内敛的文件 script link 后面都要写上inline 这样才能够,内敛到文件中.

  10. mac版破解office

    下载地址:http://ereach-public.oss-cn-shanghai.aliyuncs.com/office%202016%20for%20mac.dmg 解压密码:www.ifunma ...