简介:
Redis是一个内存中键值存储,以其灵活性、性能和广泛的语言支持而闻名。它通常用作数据库、缓存和消息代理,并支持各种数据结构。
本教程是演示如何再Ubuntu 18.04上用源码安装和配置Redis
STEP1:安装依赖项
下载源码之前,必须满足构建依赖性
$ sudo apt update
$ sudo apt install build-essential tcl
STEP2:下载、编译和安装Redis
安装依赖项以后,就可以下载源码了。用curl下载Redis最稳定的版本。最新的版本始终能在稳定的下载链接中找到
$ curl -O http://download.redis.io/redis-stable.tar.gz
解压缩:
$ tar zxvf redis-stable.tar.gz
执行以下操作进入解压后的redis文件夹编译安装
$ cd redis-stable
$ make
$ make test
$ sudo make install
STEP3:配置Redis
安装完成之后,开始配置。在etc目录中创建新的文件夹,并复制源码中的示例redis配置文件到新文件夹
sudo mkdir /etc/redis
sudo cp redis-stable/redis.conf /etc/redis //源码所在目录
编辑配置文件
sudo vim /etc/redis/redis.conf
redis.conf
.....................................................
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
supervised systemd.........................................................
.........................................................
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis............................................................
supervised设置为systemd,设置使用ubuntu的systemd init系统来管理redis服务。
dir指令创建用于转储持久数据的目录,应该创建到具有写权限,而且普通用户无法查看的目录。接下来会创建这个目录
STEP4:创建redis的systemd服务
创建并且配置redis服务文件
$ sudo 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/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always[Install]
WantedBy=multi-user.target
service指定服务行为。处于安全考虑,不应该用root用户运行此服务。可以设置专门的用户和组。要启动该服务,只要调用redis-server的可执行文件并且指向配置文件即可。停止用redis的shutdown命令。为了使redis能尽快从故障中恢复,restart应设置为always。
STEP5:创建用户、组和目录
创建专门的用户组,启动redis
//创建用户和组
$ sudo adduser --system --group --no-create-home redis
$ sudo mkdir /var/lib/redis
//提供所有权
$ sudo chown redis:redis /var/lib/redis
//调整用户权限
$ sudo chmod 770 /var/lib/redis
STEP6:启动和测试redis
启动systemd服务
$ sudo systemctl start redis
查看服务是否有错误
$ sudo systemctl status redis
输出大概如下
● redis.service - Redis In-Memory Data Store
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-12-18 17:33:13 CST; 2h 40min ago
Process: 13224 ExecStop=/usr/local/bin/redis-cli shutdown (code=exited, status=0/SUCCESS)
Main PID: 13254 (redis-server)
Tasks: 4 (limit: 2130)
CGroup: /system.slice/redis.service
└─13254 /usr/local/bin/redis-server *:6379...........................
执行客户端命令连接到redis,输入ping则会返回PONG
$ redis-cli
127.0.0.1:6379> ping
PONG
至此,安装完成。如果想设置为redis开机自启动redis,键入以下命令
$ sudo systemctl enable redis