Redis笔记
一、NoSql介绍
1、Nosql的分类:
- KV键值对
- 文本
- 列存储
- 图关系
2、Nosql的设计原则(ACP)
- A 高可用
- C 强一致性
- P 分区容忍性
说明,Nosql的ACP三项中,一般只能满足其中两项原则。
二、Redsi使用(端口:6379)
2.1、Redis的特点
- 高并发,使用C语言编写,运行在内存中
- 可持久化,支持持久化存储,异常断电后数据可恢复
2.2、Redis的数据类型
- string 类型
- list 类型
- hash 类型
- set 类型
- zset 类型
2.3、Redis的配置
- 配置文件存放在安装目录的redis.cnf文件中
- redis的内存限制。redis运行在内存中,为了避免占用大量内存,需要限制redis占用内存的数量。当redis占用内存达到设定的阈值时,redis将会采取一定的措施,主要有三种:
LRU:最近最少使用原则,删除最近、最少使用的数据
TTL:根据数据的声明值,删除剩余生命值最短的数据
NO:不删除数据
redis默认内存限制大小是512M,实际生产环境中运行需要增大这个限制数,一般5G起步。
2.4、Redis的持久化存储
redis具备持久化存储能力,当服务器意外宕机时,redis能够将内存中的数据写入到文件中,再次启动时能够从文件中恢复数据。redis数据持久化只要有两种方式:
- RDB redis每隔一定的时间周期将内存中的数据存储到dump.RDB文件中(快照,shapshot)。从内存中复制文件时,redis将会从主进程中复制完全一致的子进程,接下来的文件IO均由子进程完成,不影响主进程的效率。
- AOF redis按照一定的策略将用户的写命令存储(追加)到AOF文件中,进行数据恢复时,redis按照AOF命令再次执行一遍,实现恢复数据的功能。
- 常见的配置策略。RDB默认配置策略为 5分钟 10000次写操作或10分钟100次写操作或15分钟1次写操作;AOF默认配置策略为 每隔一定时间同步一次命令或没执行一次写操作同步一次命令或从不同步命令。
- 优缺点比较。RDB优点:能够快速恢复大量数据、相对于AOF占用更少的磁盘容量;RDB的缺点:对数据同步较差,有可能最后一个周期的数据无法同步,RDB复制数据时,要开启一个子进程,会消耗大量资源。AOF优点:数据同步性相对较好,AOF的缺点:AOF的文件比较大,占用较多的磁盘空间,AOF恢复数据要慢于RDB。
- RDB和AOF两种持久化方式可同时使用,同时使用时,redis恢复数据优先使用AOF恢复。
2.5、Redis的事务
数据库事物指的是对个SQL语句一起执行,这些语句要么同时成功要么同时失败。
- 事物的执行流程:MULTI开启、输入各种SQL、EXEC执行。
- 事务执行的结果:全部成功、某个语句报错时全部失败、某个语句语法正确但结果报错时报错的语句失败其他语句成功。