一款由C编写的开源、基于内存、单线程、可持久化的NoSql数据库。
环境与版本
linux环境为腾讯云单核``CentOS7.2.1511
。
redis版本为5.0.9
。Redis官方下载地址.
为什么不安装redis6版本?
CentOS7
,原装的gcc
版本为4.8.5
。安装redis6需要升级gcc版本,目前最新的gcc版本为gcc10,辣条君尝试安装gcc9版本,发现编译2个多小时都没有结束。网上说,编译时可以使用make -j4
,可以开启多进程编译,but辣条君的服务器是单核的,遂放弃升级gcc,乖乖的安装redis5。redis5诞生于2018年底,基本功能蛮强大了。
安装
可以使用wget命令下载redis安装包,或者从官网上下载安装包copy到你的环境中。
# 下载
cd /usr/local/
wget http://download.redis.io/releases/redis-5.0.9.tar.gz
# 解压
tar -zxvf redis-5.0.9.tar.gz
编译
cd /redis-5.0.9
make
make install PREFIX=/usr/local/redis
此时,查看/usr/local/redis/bin
路径会发现redis可执行文件。将常用的可执行文件放到环境变量中。
cd ..
cd redis/bin/
# 一般都具有超级权限,sudo可以去掉
sudo cp redis-cli redis-server redis-sentinel /usr/local/bin
此时,你的redis就可以启动使用了,为了便于管理文件,咱们把配置文件放到合适的位置,并修改下配置文件。
cd /usr/local/redis-5.0.9/
# 咱们使用的配置文件在 /usr/local/redis.conf
cp redis.conf /usr/local/
cd..
# 使用vim 查看并修改redis.conf
vim redis.conf
修改配置文件
咱们使用vim
修改部分参数,其他默认就好。
# 主机地址,默认是127.0.0.1,修改成0.0.0.0
bind 0.0.0.0
# 端口 默认就好
port 6379
# 是否开启为守护线程,默认是no,改成yes
daemonize yes
# 指定redis进程的PID文件存放位置 给文件重命名
pidfile /var/run/redis_6379.pid
# 日志存放位置 给文件重命名
logfile /var/log/redis_6379.log
# rdb模式持久化快照,默认就好
dbfilename dump.rdb
# 持久化文件存放位置 默认就好
dir ./
# redis连接密码
requirepass 123456
以上,可以根据注释很好的理解并修改部分配置文件。具体解释下几个参数:
bind
设置成0.0.0.0
,是为了保证本服务器以外的客户端可以访问本redis服务。
daemonize
设置成yes
,将redis服务变成守护进程。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。
requirepass
:如果你是云服务,这个密码一定要设置!否则,服务器很容易被某些人拿去当矿机,就是所有服务都给你停掉,只开起挖矿程序,那你真成了打工人
了。别问辣条君怎么知道的。。
启动与使用
启动so easy,就一行。
redis-server /usr/local/redis.conf
# 查看一下是否启动
ps -ef | grep redis
# 发现进程说明OK了
root 11890 1 0 Nov04 ? 00:02:39 redis-server 0.0.0.0:6379
咱们的使用,分为3种情况:本服务器内使用、其他机器(你的个人电脑)可视化客户端使用、其他机器(你的个人电脑)cli客户端使用。
- 首先看本服务器内使用
redis-cli -h 127.0.0.1 -p 6379 -a 123456
# 然后终端前缀会变成
127.0.0.1:6379>
# 使用一下
127.0.0.1:6379> set name pjjlt
OK
127.0.0.1:6379> get name
"pjjlt"
- 其他机器(你的个人电脑)可视化客户端使用
直接说吧,使用Redis Desktop Manager
可以连接并维护数据。
- 其他机器(你的个人电脑)cli客户端使用
在你个人电脑,打开cmd,利用redis-cli
连接redis服务,发现gg。这时,需要在我们Linux服务器上打开防火墙,利用iptables
。
iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter。
安装并使用iptables
# 关闭防火墙
systemctl stop firewalld
# 安装
yum install iptables-services
# 启动
systemctl enable iptables
# 打开
systemctl start iptables
# 暴露端口配置
iptables -I INPUT -p tcp -m tcp --dport 6379 -j ACCEPT
# 保存配置
service iptables save
# 重启 iptables 服务
service iptables restart
# 查看下 iptable配置
iptables -L -n -v
# 发现 6379端口暴露出去了
21169 1657K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6379
ok,至此,其他机器上的cli也可以访问我们的Redis服务了。