Ubuntu 编译安装、配置 Redis 与 Memcached 服务

测试环境:Ubuntu 16.04 LTS

以下操作均需以root身份执行

编译安装Redis

Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。

由于 Ubuntu 镜像源中的 Redis 并不是最新版的,为了使用最新版的 Redis,本文将介绍如何使用源码编译安装 Redis。

在正式安装 Redis 服务之前,需要先安装编译工具。

apt-get install build-essential tcl

从官网下载 Redis 源码

wget http://download.redis.io/redis-stable.tar.gz

解压并编译安装 Redis

tar zxvf redis-stable.tar.gz
cd redis-stable
make && make test
make install

配置 Redis

创建 Redis 配置目录

mkdir /etc/redis

拷贝配置文件

cp redis-stable/redis.conf /etc/redis/6379.conf

编辑配置文件

vim /etc/redis/6379.conf

Ubuntu 14.04 环境

修改 daemonize 为 yes,即默认以后台程序方式运行

daemonize yes

修改 supervised 为 auto

supervised auto

可修改监听 IP,开启远程连接设置为 0.0.0.0

bind 127.0.0.1

可修改默认监听端口

port 6379

配置持久化文件存放位置

dir /var/lib/redis

保存并退出文件。

使用 Redis 自带的启动脚本设置开机自启动

推荐在生产环境中使用启动脚本方式启动 Redis 服务。启动脚本 redis_init_script 位于 Redis 的 utils 目录下。

拷贝启动脚本,启动脚本命名为 redisd(通常都以d结尾表示是后台自启动服务)

cp redis_init_script /etc/init.d/redisd

编辑启动脚本

vim /etc/init.d/redisd
# Redis 服务监听的端口
REDISPORT=6379
# 服务端所处位置,默认存放于/usr/local/bin/redis-server。
EXEC=/usr/local/bin/redis-server
# 客户端位置
CLIEXEC=/usr/local/bin/redis-cli
# Redis 的 PID 文件位置
PIDFILE=/var/run/redis_${REDISPORT}.pid
# 配置文件位置
CONF="/etc/redis/${REDISPORT}.conf"

设置脚本权限(不设置将导致命令不存在)

chmod +x /etc/init.d/redisd

设置自启动

update-rc.d redisd defaults

注意:实际测试时发现设置自启动后,并不能开机自动启动服务,暂时不清楚具体原因,希望有大神指路。

启动 Redis 服务

service redisd start

Ubuntu 16.04 环境

修改supervised为systemd

supervised systemd

可修改监听 IP,开启远程连接设置为 0.0.0.0

bind 127.0.0.1

可修改默认监听端口

port 6379

配置持久化文件存放位置

dir /var/lib/redis

保存并退出文件。

创建 Systemd Unit 文件

vim /etc/systemd/system/redis.service

写入如下内容:

[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target

保存退出文件。

创建 redis 用户、组和目录

adduser --system --group --no-create-home redis
mkdir /var/lib/redis
chown redis:redis /var/lib/redis
chmod 770 /var/lib/redis

设置为自启动服务

systemctl enable redis

启动 Redis 服务

systemctl start redis

测试连通状态

$ redis-cli
> ping
PONG

编译安装 Memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

与 Redis 类似,Ubuntu镜像源中的 Memcached 不是最新版,为了使用最新版的 Memcached,下面我们通过编译的方式安装 Memcached。

由于 Memcached 依赖于 libevent,因此需要安装 libevent。

安装 libevent

官网下载 libevent 源码

wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz

解压并编译安装 libevent

tar zxvf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
./configure --prefix=/usr/local/libevent
make
make install

安装 Memcached 服务

从官网下载 Memcached 源码

wget http://www.memcached.org/files/memcached-1.4.32.tar.gz

解压并编译安装

tar zxvf memcached-1.4.32.tar.gz
cd memcached-1.4.32
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
make
make install

配置 Memcached 自启动服务

Ubuntu 16.04 环境

使用 Memcached 安装包下的 scripts/memcached.service

修改

[Service]
EnvironmentFile=/etc/memcached/config
ExecStart=/usr/local/memcached/bin/memcached -p ${PORT} -u ${USER} -m ${CACHESIZE} -c ${MAXCONN} $OPTIONS

新建 /etc/memcached/config

PORT="11211"
USER="www-data"
MAXCONN="2048"
CACHESIZE="128"
OPTIONS=""

至此,Memcached 服务已经安装完成!如果需要安装 PHP 的 Memcached 扩展可以移步到 这里