redis是什么?
哈喽~ 又见面了 ...好久没来瞅瞅我的博客了 最近忙得很呀 今天抽空更一下博客,正好最近学了一些小知识,来跟大家分享一下~~~
1. 什么是redis?
它本质上是一种键值数据库,它既保持了这种快捷简单的特点的同时,还带有部分关系数据库的有点。从而它的位置是处于关系数据库和键值数据库之间。是现在最后欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源,包含多种数据结构、支持网络、基于内存、可选持久性。
2. Redis的优点
相比于其他数据库类型,redis具备
(1) 单进程单线程模型
(2) 丰富的数据类型
(3) 高并发读写
(4) 支持lua脚本
3. Redis提供的数据类型主要分5中自有类型和一种定义类型
String类型、哈希类型(Hash)、列表类型(List)、集合类型(Set)和顺序集合类型(Zset)
4. Redis的数据结构
5. 简单动态字符串SDS(Simple Dynamic String)
基于C语言中传统字符串的缺陷,redis自己构建了一个名为简单动态字符串的抽象类型,简称为sds,结构如图:
和c字符串相比,sds的特点
Redis常见问题
1. 在redis获取key时,key如果不存在,它必须向DB发起一次请求,这就是“redis击穿”
解决方案: 1.规范key的命名,通过中间件拦截 2.对于高频访问的key设置合理的时间
2. 由于某种原因使缓存层宕机后,所有的请求会涌向存储层,短时间高并发请求可能会使存储层挂机,这叫“redis雪崩”
解决方案 1.限流 2.使用redis集群
Redis缺点:
Redis只能在适合的场景,它局限在较小的数据量的高性能操作和运算上
希望此文章能对你有帮助,掰掰咯~