Redis--- 特性,使用场景,安装
- 安装教程
- 在Ubuntu下安装
- 在Centos7.6下安装Redis5
- 特性
- 在内存中存储数据
- 可编程的
- 扩展能力
- 持久化
- 集群
- 高可用
- 快速
- 应用场景
- 实时数据存储
- 作为缓存或者Session存储
- 消息队列
安装教程
🚀安装之前切换到root用户。
在Ubuntu下安装
1.安装
apt install redis //Ubuntu下下载后默认启动了redis
2.修改配置文件
vim /etc/redis/redis.conf
bind 0.0.0.0 ::1 //修改bind后的内容
protected-mode no //保护模式改为no
3.重启服务器
service redis-server restart
在Centos7.6下安装Redis5
1.安装scl源
yum install centos-release-scl-rh
2.安装Redis5
yum install rh-redis5-redis
3.对可执行程序做软连接
cd /usr/bin
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-sentinel ./redis-sentinel
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-cli ./redis-cli
4.对配置文件做软连接
cd /etc/
ln -s /etc/opt/rh/rh-redis5/ ./redis
5.修改配置文件
bind 0.0.0.0 #修改ip
protected-mode no #关闭保护模式
daemonize yes #启动守护进程
🚀设置工作目录
mkdir -p /var/lib/redis //创建一个新的目录
dir /var/lib/redis //修改配置文件中dir 后面的内容
🚀设置日志目录
mkdir -p /var/log/redis/ #创建新的日志目录
logfile /var/log/redis/redis-server.log #修改日志文件的路径
6.启动redis
redis-server /etc/redis/redis.conf
7.终止Redis
kill redis的pid
特性
在内存中存储数据
🚀redis是将数据存储在内存中的数据结构中的,像MySQL这样的主要通过"表"的方式来存储组织数据的关系型数据库。Redis主要是通过"键值对"的方式来存储组织数据的非关系型数据库。
可编程的
🚀针对Redis的操作,可以通过使用简单的交互式命令进行操作。也可以通过一些脚本的方式,批量执行一些操作(可以带有一些逻辑)。
扩展能力
🚀在Redis原有的基础上进行扩展,Redis提供了一组API,可通过C/C++,Rust编写Redis扩展(本质上是一个动态链接库)。
持久化
🚀Redis是把数据存储在内存上的,为了是更快速的访问。Redis也会把数据存储在硬盘上,内存为主,磁盘为辅。(相当于对内存数据的备份,如果Redis重启了,就会在重启时加载硬盘中的备份数据,使Redis的内存恢复到重启前的状态)
集群
🚀Redis作为分布式系统中的一个中间件,能够支持集群是很关键的。一个Redis能存储的数据是有限的,那么就可以引入多个主机,部署多个Redis结点,每个Redis存储数据的一部分。
高可用
🚀Redis自身也是支持主从这种结构的,从结点就相当于主节点的备份。
快速
🚀Redis数据存储在内存中,就比访问硬盘的数据库要快。
🚀Redis的核心功能都是比较简单的逻辑。核心功能都是操作内存中的数据结构。
🚀从网络角度上,Redis使用了IO多路转接的方式(epoll)。
🚀Redis使用的是单线程模型,这样的单线程模型,就减少了不必要的线程之间的竞争开销。(多线程能提高效率的前提:CPU密集型任务,使用多个线程可以充分的利用CPU多核资源,但是Redis的核心人物,主要就是操作内存中的数据结构,不会消耗太多CPU)。
应用场景
实时数据存储
🚀将Redis当作数据库使用,对于实时性比较高的场景,延迟比较低适合使用Redis。
作为缓存或者Session存储
🚀将热点数据拿出来存储在Redis中(20%的数据满足80%的请求–二八原则)。从Redis中拿数据比从MySQL这样的数据库中拿数据要快很多的。
🚀通常来说Session是存储在应用服务器的内存中的,但是在分布式系统尤其是使用了负载均衡的架构下,可能同一个用户的多次请求被分发到了不同的应用服务器上,就会导致用户重新认证。可以将会话数据单拎出来放在一个Redis服务器上,所有的应用服务器都将Session存储在这个Redis中。(应用程序重启,会话不会丢失)
消息队列
🚀此处的消息队列指的不是Linux进程间通信的那个消息队列。这里指的是一个消息队列服务器,基于这个可以实现一个网络版本的生产者消费者模型。