CentOS 7 上安装 Redis3.2.3 并开启外网访问

来源:互联网 发布:sql查询某列重复数据 编辑:程序博客网 时间:2024/04/30 00:44

>>> CentOS 7 上安装 redis3.2.3安装与配置

前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自身集群的功能。

而现在最新的项目是需要redis集群的,这篇文章我们就来介绍下有关redis的安装与配置。

一、redis源码安装

截至到2016.8.11,redis最新稳定版本为3.2.3.本篇文章我们就以此版本为基础,进行相关的讲解。

下载redis源码,并进行相关操作,如下:

wget http://download.redis.io/releases/redis-3.2.3.tar.gz

tar -zxvf redis-3.2.3.tar.gz

mv redis-3.2.3 redis

解压完毕后,现在开始安装,如下:

cd redis

make && make install

通过上图,我们可以很容易的看出,redis安装到/usr/local,/usr/local/bin,/usr/local/share,/usr/local/include,/usr/local/lib,/usr/local/share/man目录下。

然后再切换到utils目录下,执行redis初始化脚本install_server.sh,如下:

cd utils/

./install_server.sh

Port      : 6379

Config file  : /etc/redis/6379.conf

Log file    : /var/log/redis_6379.log

Data dir    : /var/lib/redis/6379

Executable   : /usr/local/bin/redis-server

Cli Executable : /usr/local/bin/redis-cli

Copied /tmp/6379.conf => /etc/init.d/redis_6379

通过上图,我们可以看出redis初始化后redis配置文件为/etc/redis/6379.conf,日志文件为/var/log/redis_6379.log,数据文件dump.rdb存放到/var/lib/redis/6379目录下,启动脚本为/etc/init.d/redis_6379。

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

  1. vi/etc/systemd/system/redis_6379.service

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

  1. [Unit]
  2. Description=Redis on port 6379
  3. [Service]
  4. Type=forking
  5. ExecStart=/etc/init.d/redis_6379 start
  6. ExecStop=/etc/init.d/redis_6379 stop
  7. [Install]
  8. WantedBy=multi-user.target

 

现在来查看redis版本使用redis-cli –version命令,如下:

redis-cli –version

通过上图,我们可以看到redis版本是3.2.3。

现在我们只要启动redis就可以使用redis了,到此源码方式安装redis就介绍完毕。

二、yum方式安装

源码安装redis介绍完毕后,我们再来通过yum方式安装redis,本文是以centos6.8为例。使用如下命令:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

yum -y –enablerepo=remi,remi-test install redis

redis安装完毕后,我们来查看下redis安装时创建的相关文件,如下:

rpm -qa |grep redis

rpm -ql redis

通过上图,我们可以看出redis的配置文件是/etc/redis.conf,数据文件dump.rdb存放到/var/lib/redis/目录下,日志文件为 /var/log/redis/redis.log,其他的都是默认的。

现在来查看redis版本使用redis-cli –version命令,如下:

redis-cli –version

通过上图,我们可以看到yum方式安装的确实是最新的redis版本。

现在我们只要启动redis就可以使用redis了,到此yum方式安装redis就介绍完毕。

三、apt-get方式安装

yum方式安装redis介绍完毕后,我们现在来介绍下ubuntu14.04下通过apt-get方式安装redis。

根据安装redis版本的新旧,我们又进行了区分。

3.1 apt-get安装最新版本

先来介绍下安装最新版本的redis,首先要导入apt-get仓库验证密钥,如下:

wget -q -O – http://www.dotdeb.org/dotdeb.gpg | sudo apt-key add –

或者

wget http://www.dotdeb.org/dotdeb.gpg

sudo apt-key add dotdeb.gpg

验证文件安装完毕后,我们再来配置apt-get仓库,如下:

vim /etc/apt/sources.list.d/redis.list

deb http://packages.dotdeb.org wheezy all

deb-src http://packages.dotdeb.org wheezy all

注意:这个apt-get仓库,我们使用的是debian的apt-get仓库,因为经过多次测试发现只有使用这个apt-get仓库才能安装到最新的redis版本。

apt-get仓库配置完毕后,我们现在来开始执行如下命令进行安装:

sudo apt-get clean all

sudo apt-get update

sudo apt-get -y install redis-server

通过上图,我们可以很明显的看出redis的版本是3.2.3,最新版本。当然我们也可以通过redis-cli –version命令进行查看。如下:

redis-cli –version

通过上图,我们可以看到目前这种方式安装的redis是最新的版本。

3.2 apt-get非最新版本

上一章节我们使用的debian的apt-get仓库,安装的是redis最新版本,那么我们再来使用比较常见的PPA仓库安装redis看看。

相关命令如下:

sudo apt-get -y install python-software-properties software-properties-common

sudo add-apt-repository -y ppa:chris-lea/redis-server

sudo apt-get clean all

sudo apt-get update

sudo apt-get -y install redis-server

通过上图,我们可以很明显的看出这样安装的redis是3.0.7版本,不是最新版本。

以上方式,我们也可以通过直接添加apt-get仓库达到目的,因为sudo add-apt-repository -y ppa:chris-lea/redis-server这条命令其实就是在添加一个apt-get仓库。如下:

cat /etc/apt/sources.list.d/chris-lea-redis-server-trusty.list

添加apt-get仓库,使用如下命令:

vim /etc/apt/sources.list.d/redis.list

deb http://ppa.launchpad.net/chris-lea/redis-server/ubuntu trusty main

deb-src http://ppa.launchpad.net/chris-lea/redis-server/ubuntu trusty main

然后再执行如下命令进行安装就ok了:

sudo apt-get clean all

sudo apt-get update

sudo apt-get -y install redis-server

到此通过apt-get方式安装redis就已经全部结束。

四、配置redis

redis安装完毕之后,我们再来配置redis。其实有关redis的安装,我这边的建议是直接通过源码进行安装。因为安装完毕后,redis配置文件是非常完整的。

考虑到安全性,我们只需要启用redis的密码验证功能requirepass参数即可。

最终redis配置文件如下:

grep -Ev ‘^#|^$’ /etc/redis/6379.conf

bind 127.0.0.1

protected-mode yes

port 6379

tcp-backlog 511

timeout 0

tcp-keepalive 300

daemonize yes

supervised no

pidfile /var/run/redis_6379.pid

loglevel notice

logfile /var/log/redis_6379.log

databases 16

save 900 1

save 300 10

save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir /var/lib/redis/6379

slave-serve-stale-data yes

slave-read-only yes

repl-diskless-sync no

repl-diskless-sync-delay 5

repl-disable-tcp-nodelay no

slave-priority 100

requirepass ilanniredis

appendonly no

appendfilename “appendonly.aof”

appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

lua-time-limit 5000

slowlog-log-slower-than 10000

slowlog-max-len 128

latency-monitor-threshold 0

notify-keyspace-events “”

hash-max-ziplist-entries 512

hash-max-ziplist-value 64

list-max-ziplist-size -2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

activerehashing yes

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 256mb 64mb 60

client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

aof-rewrite-incremental-fsync yes

有关配置文件里面的这些参数我们会在以后的文章中进行介绍,到此有关redis配置简单介绍完毕。

五、启动和使用redis

redis配置文件配置完毕后,我们来启动redis并进行简单的操作。如下:

redis-cli -h 127.0.0.1 -p 6379 -a ilanniredis

keys *

set ilanni testredis

get ilanni

我们来稍微讲解下以上命令的意思:

redis-cli -h 127.0.0.1 -p 6379 -a ilanniredis

这条命令是说要连接redis服务器,IP是127.0.0.1,端口是6379,密码是ilanniredis。

keys *是查看redis所有的键值对。

set ilanni testredis添加一个键值ilanni,内容为testredis。

get ilanni查看ilanni这个键值的内容。

redis的命令使用暂时我们就介绍这么多。

--------------------------------------------来自博主华丽的分割线----------------------------------------------

配置外网访问

redis3.0 以上的版本默认启用了安全机制较高的防护模式(protected-mode)。

redis2.x 只需要 bind 0.0.0.0,并开放防火墙端口即可外网访问;而redis3.x版本需要在此基础上禁用防护模式。

# redis-cli // 进入redis命令行模式

xxxx:6379> CONFIG SET protected-mode no // 禁用防护模式

如此即可外网访问 ^ ^

0 0