目录
Redis ,全称 REmote DIctionary Server ,是一个由 Salvatore Sanfilippo 编写的开源高性能 key-value 存储系统。Redis 是基于内存的 Key-Value 数据库,比 Memcache 更先进,支持多种数据结构,高效,快速。用 Redis 可以很轻松解决高并发的数据访问问题,做为时时监控信号处理也非常不错。本文详细介绍如何在 Ubuntu 18.04 上手动安装最新版 Redis 。以下操作是在 root 账号下进行的,非 root 账号需提升到 root 权限。
安装 Redis
- 用 tar 压缩包编译进行安装,稳定性不够好,下面就来介绍用系统自带的 apt 工具安装方法
- Ubuntu 16.04 默认源中的 Redis 版本是3.0版本,不是最新版,要想通过 apt-get install 的方式安装最新版,首先添加 Redis 源。
添加 Redis 源
- 首先安装依赖:
sudo apt-get install software-properties-common -y
- 使用如下命令添加 Redis 镜像源:
sudo add-apt-repository ppa:chris-lea/redis-server -y
开始安装 Redis
- 使用如下命令安装 Redis:
sudo apt-get update && sudo apt-get install redis-server -y
- 通过以上命令便可安装最新版 Redis ,终端中输入以下命令查询 Redis 版本:
redis-server -v
- 命令执行后返回 Redis 版本如下,已经是最新版本:
Redis server v=5.0.5 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=96192a109b5fb62e
- Redis 安装完成后服务已经自动启动,通过以下命令查看 Redis 服务状态:
systemctl status redis-server
- 命令执行后会返回类似下面的信息,可以看到 Redis 服务已经启动,而且重启系统服务也会自动运行:
redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-01-19 10:48:52 UTC; 12s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 2421 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 2424 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
Main PID: 2445 (redis-server)
Tasks: 4 (limit: 4704)
CGroup: /system.slice/redis-server.service
└─2445 /usr/bin/redis-server 127.0.0.1:6379
启动 Redis
$redis-server
打开 redis 客户端, 查看 redis 是否启动?
$redis-cli
执行上面命令后将在终端显示下面信息:
redis 127.0.0.1:6379>
Ps: 其中 127.0.0.1 是本机 IP ,6379 是 redis 服务端口。
现在我们输入 PING 命令。
redis 127.0.0.1:6379> ping
执行 ping 后, 如果终端返回 PONG,即说明我们已经成功安装了redis。
常用基本命令
退出 redis-cli 命令:
exit
查看 redis-server 运行状态命令:
service redis-server status 或 systemctl status redis-server
开启 redis-server 服务命令:
sudo service redis-server start
停止 redis-server 服务命令:
sudo service redis-server stop
以下部分可根据自己情况, 选择性进行配置
配置 Redis 密码
修改配置文件,设置 Redis 密码
- 配置 Redis 密码将启用
auth
命令,该命令需要客户端进行身份验证才能访问数据库,大大提高安全性。配置 Redis 密码是通过修改 Redis 配置文件完成的。Redis 配置文件为/etc/redis/redis.conf
。在 redis.conf 文件中有一条对 requirepass 的注释警告:
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
- 因此,指定一个非常强大和非常长的值作为密码很重要,可以使用 openssl 命令生成一个随机密码:
printf "$(openssl rand 60 | openssl base64 -A) \n"
- 命令执行后终端返回一串随机字符串,例如:
EDyHgJqw1maAYr+bbjmIKF+1lm9EnGegFrzdy2zNfAdgvCCi1Wz+Xezs1YzVpHPpDZqyl2uNSwRIKSFn
- 将该随机字符串做为 Redis 密码(注意,以下命令执行时请将随机字符串修改为自己获取的真实随机字符串):
sed -i 's/# requirepass foobared/requirepass EDyHgJqw1maAYr+bbjmIKF+1lm9EnGegFrzdy2zNfAdgvCCi1Wz+Xezs1YzVpHPpDZqyl2uNSwRIKSFn/' /etc/redis/redis.conf
- 重启 Redis 服务,使密码生效:
systemctl restart redis.service
测试 Redis 密码
- 终端中输入执行以下命令进入 Redis 客户端:
redis-cli
- 终端中返回结果如下:
root@timelate:~# redis-cli
127.0.0.1:6379>
- 输入 ping 并回车,终端中返回结果如下:
127.0.0.1:6379> ping (error) NOAUTH Authentication required.
- 提示需要认证,说明密码已经生效。继续在终端中输入以下命令,进行密码认证:
auth EDyHgJqw1maAYr+bbjmIKF+1lm9EnGegFrzdy2zNfAdgvCCi1Wz+Xezs1YzVpHPpDZqyl2uNSwRIKSFn
- 命令执行后终端返回结果如下,提示认证成功:
127.0.0.1:6379> auth EDyHgJqw1maAYr+bbjmIKF+1lm9EnGegFrzdy2zNfAdgvCCi1Wz+Xezs1YzVpHPpDZqyl2uNSwRIKSFn
OK
- 终端中输入 exit 并回车,退出 Redis 客户端。
完结......