Redis 整理
定义
缓存就是在内存中储存的数据备份, 当数据没有发生本质的变化的时候,我们避免数据的查询操作直接连接数据库, 而是去内存中读取数据, 这样就大大的降低了数据库的读写次数, 而是从内存中读取数据, 内存读取数据的速度要比从数据库查询块很多.
为什么使用redis
- 降低数据库的压力
- 多样灵活的数据模型
- 解决io的读操作,减轻io的压力
- 关系数据库的扩展性不强,难以改变表的结构
- 解决应用服务器的cpu和内存压力
优点
nosql 数据库没有关联关系, 数据结构简单, 扩展表比较容易.
nosql 读取速度快, 对较大数据的处理速度快
适用场景
数据高并发的读写
海量数据的读写
对扩展性要求高的数据
不适合场景
需要事物支持,
基于sql结构化查询储存,关系复杂
redis结构
是一个开源的key-value型数据库
支持五种数据结构,
- string(字符串)
- set(集合)
- zset (有序集合)
- list(列表)
- hash(哈希)
对这些数据的操作都是原子性的
redis为了保证效率会定期持久化数据.
使用场景
- 配合关系型数据库做高效缓存
- 缓存高频次访问的数据,降低数据库的io操作
- 分布式架构, 做session共享.
- 可以持久化特定数据
- 利用zset烈性可以存储排行榜
- 利用list的自然时间排序存储最新n个数据
linux下的redis
- redis目录 usr/local/bin
- linux下redis常用命令
- redis-benchmark : 性能测试工具
- redis-server : 启动redis服务器
- redis-cil : 启动redis客户端,操作入口
redis基础知识
- 端口号: 6379
- 默认是16个数据库, 下标从0开始
- 单线程:redis是单线程+io多路复用 : 检查文件描述的就绪状态
redis持久化
- 什么是持久化, 就是讲数据放到硬盘上, 断电后数据不会丢失的设备中.
- 客户端向服务器发送操作 (数据在客户端的内存中)
- 数据库服务端接收到请求的数据 (数据在服务器的内存中)
- 服务端调用write这个系统调用,将数据往磁盘上写 (数据在系统内存的缓存中)
- 操作系统将缓存区中的数据转移到磁盘控制器上 (数据在磁盘缓存中)
- 磁盘控制器将数据写到磁盘的物理介质上 (数据真正落到磁盘上)