Redis介绍
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
【1】Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
【2】Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
【3】Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他key-value存储有什么不同?
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
Redis安装
下载安装包
wget http://download.redis.io/releases/redis-6.2.6.tar.gz -P /opt/module
解压 Redis安装包
tar -zxvf /opt/sofatware/redis-6.2.6.tar.gz -C /opt/module/
解压完成后给Redis安装包修改个名字 方便使用
mv redis-6.2.6 redis
配置环境变量
export REDIS_HOME=/opt/module/redis
export PATH= P A T H : PATH: PATH:REDIS_HOME/bin
重启一下环境变量
source /etc/profile
进入redis目录:
cd /opt/module/redis/
运行编译命令:
输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容
make
运行结果为
安装 输入以下命令
make PREFIX=/opt/modulel/redis install
这里多了一个关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/opt/module/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,
库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /opt/module/redis即可删除redis。
配置结果
以下是一些基础命令
redis-cli:是redis提供的命令行客户端
redis-server:是redis的服务端启动脚本
redis-sentinel:是redis的哨兵启动脚本
启动
redis的启动方式有很多种,例如:
默认启动
指定配置启动
开机自启
默认启动
安装完成后,在任意目录输入redis-server命令即可启动Redis
redis-server
运行结果
这种启动属于前台启动,会阻塞整个会话窗口,窗口关闭或者按下CTRL + C则Redis停止。不推荐使用
指定配置启动
如果要让Redis以后台方式启动,则必须修改Redis配置文件
修改配置文件redis.conf
首先备份
cp redis.conf redis.conf.bck
进入配置文件
vim redis.conf
然后修改redis.conf文件中的一些配置:
允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
守护进程,修改为yes后即可后台运行
daemonize yes
密码,设置后访问Redis必须输入密码
requirepass 123456
监听的端口
port 6379
工作目录,默认是当前目录,也就是运行redis-server时的命令,日志.持久化等文件会保存在这个目录
dir .
数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
设置redis能够使用的最大内存
maxmemory 512mb
日志文件,默认为空,不记录日志,可以指定日志文件名
logfile “redis.log”
配置完成之后启动redis服务
启动redis:
redis-server redis.conf
停止服务:
利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务
redis-cli
因为之前配置了密码
auth 123456
所以需要输入一下密码
最后输入 shutdown即可退出
代码运行如下
开机启动
首先,新建一个系统服务文件:
vi /etc/systemd/system/redis.service
配置如下
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/opt/module/redis/bin/redis-server /opt/module/redis/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
ExecStart=/opt/module/redis/bin/redis-server /opt/module/redis/redis.conf
重点是这个路径
然后重启系统服务:
systemctl daemon-reload
我们可以用下面这组命令来操作redis:
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
执行下面的命令,可以让redis开机自启:
systemctl enable redis