redis知识点及使用


前言

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。

传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。

实操

在这里插入图片描述
list相关操作

工作中相关应用

多实例场景中, 有时候需要保持对一个数据的统一读取和写入, 这时候redis就是一个很好的组件, 可以通过redisclient.eval通过lua脚本的方式对redis进行原子性操作,多实例情况下, 也不会对redis数据进行脏读脏写。

在实际应用中,需要注意的一点就是, redis本身的操作,是原子性操作,但是在服务实际的处理中, 业务场景场景复杂, 往往一个业务场景需要很多个原子操作组合在一起, 这种情况下, 本服务的业务就容易被其他的redis操作,打断, 所以需要设计好业务使用redis的技术方案,上述说的redisclient.eval就是一个方式,通过redis的lua脚本将全部原子操作封装在一次成为一个新的原子操作。

关键知识点

redis持久化就是把内存的数据写到磁盘中,防止服务宕机导致内存数据丢失
redis通过两种持久化方式:RDB(默认)和AOF
RDB: redis DataBase
功能核心函数rdbsave(生成RDB文件)和rdbload(从磁盘中加载文件到内存)两个函数

RDB快照是一次全量备份,存储的是内存数据的二进制序列化形式,存储上非常紧凑。当进行快照持久化时,会开启一个子进程专门负责快照持久化,子进程会拥有父进程的内存数据,父进程修改内存子进程不会反应出来,所以在快照持久化期间修改的数据不会被保存,可能丢失数据。

AOF:Append-only file
每当执行服务器任务或者函数时flushAppendOnlyFile函数都会被调用,这个函数执行以下两个工作:
write:根据条件,将aof_buf的缓存写入到AOF文件
save:将aof文件保存到磁盘

从这力可以看出,RDB类似于快照,而AOF类似于日志文件,一个是保存原来数据,一个是将操作记录成日志保存下来

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值