redis基础知识

本文介绍了Redis作为内存数据库的核心特点,包括其使用哈希map存储数据,支持五种数据类型。重点讨论了Redis的两种持久化策略,以防止数据丢失,并解释了缓存击穿和缓存穿透的概念及其潜在风险。此外,提到了Lua脚本在提高效率方面的作用,以及Redis的事务特性。最后,讨论了Redis与数据库的性能对比,以及在启用Redis后,通常不再需要Mybatis缓存的原因。
摘要由CSDN通过智能技术生成

1.存储的数据类型

redis本质上是一个哈希map,key是字符串,value是五种数据类型

2.2种持久化策略

redis主要在内存中,内存属于闪存,断电数据就没惹,持久化就是把数据存到磁盘中去。

两种持久化策略是指redis在内存中运行的时候会把数据传到磁盘中去,防止服务器突然宕机。

3.缓存击穿

缓存的数据被淘汰没了,数据库的数据存储在redis上。最初的时候,数据库的并发非常少,需要把数据缓存到redis中,让redis去抗并发。一些热门的数据应该存储在缓存中,攻击方请求的数据预估没有在缓存,先访问缓存在访问数据,绕过热点数据访问冷门数据,直接访问数据库,如果绕过的频率高,会让数据库崩溃。单条的数据攻击是很难生效的,通常需要不断切换,因为如果单条的话就会存储在缓存中;那开启redis之后mybatis的缓存还需要开吗,大部分开启redis之后,myabtis的缓存就不开了。mybatis不开就需要手写一个针对sql的优化,否则很容易被攻击掉

4.缓存穿透

存储的数据没有,绕过缓存让数据库去抗

Lua脚本:

c语言写的脚本,操作系统自带环境的叫做脚本?配合ngnix访问数据库,速度非常快,一是c语言写的,可以被操作系统直接翻译,占据内存因为没jvm,所以占据内存页很少。

LRU:

页面置换,操作系统的淘汰策略

事务:

跟mysql事务一样,要么都成功,要么都失败;类似如果有9个事务成功1个事务失败,那么都会回滚

redis是运行在内存中,几乎没有cpu浪费,所以不适合用多线程。

redis单纯运行速度,比数据库在磁盘要快不少,redis在内存中(自己开辟一个区域,他是c写的,没有所谓jvm这些东西,redis和jvm是同级别的、、、、、、、),数据本身是在内存里面,redis相对于mysql来说,省去了从磁盘中加载的环节。网路io抵消了不少redis的性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值