Redis实战
北海宇微
生命源于感动,感动让我们有了羁绊,让我们有了不舍,让我们在生去生命那—刻可以笑看人生一一一一我来过
展开
-
06-redis知识图谱,生产问题汇总
加机器,扩容永远是解决问题的最佳途径。良好的服务高可用性,不是简单的通过对应用的配置和调优来实现的。简单的说,就是你不可能通过调优让rocketmq达到kafka的吞吐量。你也不可能通过简单的调优,让kafka达到rocketmq的一致性。 ...原创 2021-03-26 09:43:22 · 289 阅读 · 0 评论 -
进程内缓存一致性
首先这个是我们不需要考虑的问题,进程内缓存应该在一个进程,一个请求结束后失效。如果需要长时间有效多个进程数据一致,可以使用redis,codis,memcached等外部缓存。 对哪些已经使用进程内缓存来实现多进程数据一致性的问题,通常有三种方案: 1.缓存变化探活,如果任何一个进程内缓存变化,则通知其他缓存。 2.缓存同步多写,双写。例如利用ROcketMQ等消息队列的消息可靠性,同步将缓存变化更新到所有进程。 3.唯一数据中心,进程定时去数据中心拉去数据。 经典的分布式系统理论-CAP一致性(cons原创 2020-06-07 15:38:19 · 340 阅读 · 0 评论 -
Redis缓存穿透、缓存雪崩问题
穿透雪崩主要是因为查询数据库造成的,那么读写分离,缓存数据查询失败不去查数据库就好了。查的时候有即是有,无即是无,不会再查数据库,缓存的穿透和雪崩问题就不存在了。其次添加数据库和缓存同步功能,保证数据库和缓存数据是一致的即可(需要注意的是这时候数据库数据是有限和相对稳定的,其实如果是海量数据同时放入缓存这种设计策略,我个人认为本身就有些胡闹)。 缓存穿透问题 现象:请求缓存中么有对对应key的时候去数据库取,大量的缓存穿透可能造出数据库不可用。 解决方法: 1.数据库查询为空,则空值更新缓存(会增加缓存无原创 2020-06-07 15:13:27 · 1676 阅读 · 0 评论 -
Redis基础介绍
简单的说就是11225531,单进程单线程,两种实现方式,两种数据保存模式,五种数据结构,五种数据类型,三种特性,一个文件原创 2020-06-06 16:37:35 · 1647 阅读 · 0 评论 -
Redis源码初探之数据结构-跳跃表
Redis中有两个地方用到了跳跃表,一个是有序集合键,一个是集群节点的内部数据结构。1.数据结构 /* ZSETs use a specialized version of Skiplists */ typedef struct zskiplistNode { sds ele;/**/用于存储字符串类型的数据 double score;/*排序分值*/ struct z...原创 2020-01-19 00:18:32 · 4090 阅读 · 0 评论 -
Redis源码初探之数据结构
Redis可以存储键和5种不同类型的数据结构,它们是STRING(字符串),lIST(列表),SET(集合),HASH(散列表),ZSET(有序集合)。 1.字符串(String)可以是字符串、整数或者浮点数。Redis对整个字符串或者其中部分执行操作。对整数和浮点数执行自增或者自减操作。 2.链表(List)链表的每个节点都包含一个字符串.Redis可以从链表两端插入或者弹出元素。 /*链表...原创 2020-01-18 22:56:22 · 4108 阅读 · 0 评论