在本文中,我们将学习如何配置Redis,Redis是一种内存中键值存储,它以其灵活性,性能和广泛的语言支持而广受欢迎。我们将在Ubuntu Linux服务器上进行配置。要进行此演示,我们需要一个非root用户,并将为该用户设置Sudo特权来执行。
要获取最新版本的Redis,我们将获取最新的源代码,并将编译并安装该软件。为此,我们需要安装用于软件编译的依赖项。
我们还需要从Ubuntu存储库安装build-essential元软件包,并下载用于测试二进制文件的'tcl'软件包。
# sudo apt-get update # sudo apt-get install build-essentials tcl
下载源代码并解压缩。临时创建一个文件夹
# mkdir /tmp/redis # cd /tmp/redis
下载Redis的最新稳定版本,因此我们可以使用以下命令
# curl -O http://download.redis.io/redis-stable.tar.gz# tar xzvf redis-stable.tar.gz # cd redis-stable
我们将使用以下命令编译并安装Redis二进制文件
# make
编译好源代码后,我们将获得二进制文件,我们运行以下命令来测试西装
# make test
我们可以使用以下命令在系统上安装所有二进制文件。
# make install
刚安装Redis时,就可以开始配置Redis。我们需要创建目录/ etc / redis
# mkdir /etc/redis
复制Redis源档案中包含的Redis配置文件
# cp /tmp/redis/redis-stable/redis.conf /etc/redis
使用编辑器打开配置文件
# vi /etc/redis/redis.conf
在配置文件中,我们将找到一个名为“ supervised”的指令,该指令被设置为no,因为我们正在使用systemd来初始化系统,以便可以将其更改为systemd。
# 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 "流程已准备就绪。" # They do not enable continuous liveness pings back to your supervisor. supervised systemd
接下来,找到dir指令并将dire指令更改为/ var / lib / redis,其中此选项用于指定Redis将用于转储持久性数据的目录。该位置具有写权限,普通用户无法查看。
# 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 Save the changes and close the file
我们可以创建一个systemd文件,以便init系统可以管理该过程。
# touch /etc/systemd/system/redis.service # vi /etc/systemd/system/redis.service
我们从[Unit]部分开始,添加说明并定义一个要求,我们需要联网才能最有效地启动此服务。
[单位]说明= Redis之后的内存数据存储= network.target
在[service]部分,我们将指定服务行为。出于安全原因,我们将不以root用户身份运行该服务。我们将为用户和组专门指定一个简单的Redis。
要启动服务,我们需要调用redis-server二进制文件,它指向我们的配置。要停止服务,我们将使用Redis shutdown命令,该命令将与redis-cli二进制文件一起执行。
[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] section, we define the systemd to target the service to attach to enable (configured to start at boot time). [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
# add users --system --group --no-create-home redis # mkdir /var/lib/redis # chown redis:redis /var/lib/redis # chmod 770 /var/lib/redis
我们准备启动Redis服务器
# systemctl start redis
要检查服务是否正常运行,我们可以运行以下命令–
# systemctl status redis redis.service - Redis Server Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2016-05-13 11:42:00 EDT; 5min 03s ago Process: 7127 ExecStop=/usr/local/bin/redis-cli shutdown (code=exited, status=0/SUCCESS) Main PID: 7143 (redis-server) Tasks: 6 (limit: 512) Memory: 10864.0K CPU: 79ms CGroup: /system.slice/redis.service └─7143 /usr/local/bin/redis-server 127.0.0.1:6379
# sudo systemctl enable redis
我们应该在我们的环境中安装并配置一个Redis实例,以便我们可以将其用于内存中的数据结构存储,还可以用作数据库,缓存和消息代理。