-
Redis 是开源的,免费的,高性能的 非关系型数据库。
-
数据存储在内存,以key-value(键值对)形式存储,类似于我们学习的字典 {name: ‘jack’ }
-
可以设置过期时间,过期自动删除,也可以做持久化。
-
过期策略通常有以下三种:
-
定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。
-
惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。
-
定期扫描:每隔一定的时间,会扫描expires字典中key,并清除其中已过期的key。该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。
-
MySQL的缺陷:
1. 读取的时候相对较快, 但是写入数据是比较慢的, 读取速度是1w/s. 写入速度: 1000/s。
2. 读写时容易混淆,会读取出脏数据,需要对Mysql读写做限制.
3. 需要定义严格的表结构,插入数据需要满足完整性约束。
4. 数据存储在磁盘,相对于内存数据库,读写速度慢。
非关系型数据库:
Redis 在非关系型数据库中没有表这个概念,也就没有表关系这样的概念,都是k/v 格式的。
Redis 优势:
-
性能极高 – Redis读的速度是11w次/s,写的速度是8.1w次/s ,都是基于内存的,读写速度比较快。
-
丰富的数据类型 – Redis支持 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
-
原子性 – Redis的所有操作都是原子性的,要么成功执行,要么失败不执行。支持简单的事务,即原子性,通过MULTI和EXEC指令包起来。如下所有的操作全部执行或者全部不执行
如何安装
以windows为例:
-
下载压缩包
备用:https://hub.fastgit.xyz/tporadowski/redis/releases 切记:镜像站不要登录自己的github账号!!!
-
解压缩包
-
配置环境变量
-
注册服务并绑定使用的配置文件
redis-server --service-install 配置文件地址 # 安装服务 redis-server --service-uninstall # 卸载服务
-
启动server程序
redis-server --service-start # 启动redis服务器 redis-server --service-stop # 停止redis服务器
注意:修改配置文件之后,需要重启redis服务器
如何卸载
1.停止server程序
redis-server --service-stop # 停止redis服务器
2.卸载服务
redis-server --service-uninstall # 卸载服务