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 扩展可以移步到 这里。