Redis
文章平均质量分 92
Tyella
喜欢一切新奇好玩的事物
展开
-
Redis数据结构及底层实现
Redis底层数据结构 1. SDS Redis没有使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS),并将SDS用作Redis的默认字符串表示。 struct sdshdr { // 记录SDS所保存字符串的长度 int len; // 记录buf数组中未使用字节的数量 int free; // 字节数组,用于保存字符串 char buf[]; } SDS的特点: 常数复杂度获取字符串长原创 2021-10-24 09:55:34 · 93 阅读 · 0 评论 -
SpringBoot中Redis的使用
Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更丰富的数据结构,例如hashes,lists,sets等,同时支持数据持久化。除此之外,Redis还提供一些类数据库的特性,比如事物,HA,主从库。可以说Redis兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景。本文介绍Redis在Spring Boot中两个典型的应用场景。 一、如何使用 1、引入...转载 2019-02-08 14:08:35 · 154 阅读 · 0 评论 -
脚踏两只船的困惑--Memcached和Redis
一、Memcached与Redis的区别 Memcached:一款完全开源、高性能、分布式的内存系统 Redis:一个开源的,Key-Value型、基于内存运行并支持持久化的NoSQL数据库。 从概念上来看,Memcached和Redis并非是一对“孪生兄弟”,能将二者联系起来的纽带就是内存。从诞生之初起,二者的目标就有差异。Memcached追求高性能的内存服务,而Redis不仅支持内存服...转载 2019-02-25 11:17:21 · 270 阅读 · 0 评论 -
Redis五种数据结构
一、Redis五种数据类型 Redis除了存储键之外还可以存储常见的5种数据类型,分别是:String、List、Set、Zset、Hash。 结构类型 结构存储的值 结构的读写能力 String字符串 可以是字符串、整数或浮点数 对整个字符串或字符串的一部分进行操作 对整数或浮点数进行自增或自减操作 List列表 一个链...转载 2019-02-25 15:01:50 · 292 阅读 · 0 评论 -
为什么说Redis是单线程的以及为什么Redis这么快
一、Redis为什么这么快 Redis是一个基于内存的采用单进程单线程模型的key-value数据库,由c语言编写,官方提供的数据是可以达到100000+QPS。为什么能这么快,主要有以下几点: 完全基于内存,绝大多数请求都是纯粹的内存操作,非常快速。数据存储在内存中相当于HashMap,查找和操作时间复杂度都是O(1)。 采用单线程,避免了不必要的竞争和上下文切换,也不存在多线程或多进程导...转载 2019-02-25 16:08:17 · 194 阅读 · 0 评论 -
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
一、缓存雪崩 缓存雪崩我们可以简单理解为:由于原来缓存失效(比如我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),新缓存未到,原来应该访问缓存的请求都跑去查询数据库,而对数据库CPU和内存造成巨大压力,严重的会造成系统宕机,从而形成一系列连锁反应,造成整个系统崩溃。 缓存雪崩对系统的冲击是非常大的,可以使用队列解决此问题。避免缓存失效时大量的并发请求落到底层系统上。还有一个...原创 2019-02-25 16:28:34 · 275 阅读 · 0 评论 -
一致性Hash算法
一、Redis集群的使用 对于大型系统,当数据量很大时,需要对数据库进行分库分表。当数据量很大时,Redis同样要进行此操作,就是分库分表。假设经过分库分表,现在有4台Redis服务器,当查询一条数据的时候,此时不知道具体在哪一个服务器上,可以用Hash算法。对请求键求Hash值,公式为hash(a.png)%4=2。可知我们定位到了第2号服务器。这样就不需要遍历所有服务器,提高了性能。 二、...原创 2019-02-25 19:53:25 · 144 阅读 · 0 评论 -
使用快照和AOF将Redis数据持久化到硬盘中
一、前言 Redis是一款内存服务器,为了避免出现突然断电造成Redis服务器中的数据失效。我们需要对数据进行备份。将Redis在内存中的数据持久化到硬盘等非易失性介质中,来保证数据的可靠性。Redis提供了两种方式,快照和只追加文件。 快照(RDB):就是我们通常所说的备份,定期将内存中的数据持久化到硬盘中。 只追加文件(AOF):在执行写命令的时候,将写命令复制到硬盘中,后期只需再重新执...原创 2019-02-25 20:39:29 · 268 阅读 · 0 评论