
redis
文章平均质量分 94
华山拎壶冲
不积跬步,无以至千里。。。
面试必备:https://www.jianshu.com/u/c3be0f69940b
展开
-
redis的底层数据结构
1、演示数据类型的实现 上篇博客我们在介绍 key 相关命令的时候,介绍了如下命令:OBJECT ENCODING key 该命令是用来显示那五大数据类型的底层数据结构。 比如对于 string 数据类型: 我们可以看到实现string数据类型的数据结构有 embstr 以及 int。 再比如 list 数据类型: 这里我们就不做过多的演示了,那么上次出现的 embstr 以及 int 还有 quicklist 是什么数据结构呢?下面我们就来转载 2021-07-03 23:27:20 · 300 阅读 · 0 评论 -
Redis 消息队列的三种方案(List、Streams、Pub/Sub)
现如今的互联网应用大都是采用分布式系统架构设计的,所以消息队列已经逐渐成为企业应用系统内部通信的核心手段,它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能。当前使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等,而部分数据库如Redis、MySQL以及phxsql,如果硬搞的话,其实也可实现消息队列的功能。可能有人觉得,各种开源的 MQ 已经足够使用了,为什么需要用 Redis 实现 M...转载 2021-06-25 22:56:05 · 751 阅读 · 0 评论 -
看完这篇Redis缓存三大问题,保你能和面试官互扯。
日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题。一旦涉及大数据量的需求,如一些商品抢购的情景,或者主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度问题有严重的性能弊端,详细的磁盘读写原理请参考这一片[]。在这一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。为了克转载 2020-06-24 15:07:01 · 346 阅读 · 0 评论 -
如何避免重复提交?分布式服务的幂等性设计!
来源:https://www.cnblogs.com/QG-whz/p/10372458.html作者:melonstreet为什么需要保证幂等性编程中的“幂等性”是指任意多次执行所产生的影响,与一次执行的影响相同。一个拥有幂等性设计的接口,保证无论一次或多次来调用接口,都能够得到相同的结果。接口的幂等性设计在某些场景下是必需的,例如用户下单的场景。我们知道,服务之间的调用存在三种状态:成功、失败、超时。超时是一种未知的状态:被调服务是否执行成功,这个状态是未知的。上游服务调用下游服务超时.转载 2020-06-11 15:35:04 · 322 阅读 · 0 评论 -
经典面试题:Redis 内存满了怎么办?
来源:https://juejin.im/post/5d674ac2e51d4557ca7fdd70作者:千山qiansanRedis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小 //设置Redis最大占用内存大小为100M maxmemo..转载 2020-06-10 11:53:24 · 199 阅读 · 0 评论 -
Redis 3.2.x安装和配置
1. 关闭防火墙和Selinux Linux的防火墙是咱们新手的噩梦,很多情况会出现能ping通,但是访问不了Web页面。所以开始就干掉它! 1.1关闭防火墙[root@localhost ~]# /etc/init.d/iptables stopiptables: Setting chains to policy ACCEPT: filter...原创 2020-01-13 17:44:01 · 418 阅读 · 0 评论 -
ShardedJedis实现分布式锁
一、通过setnx实现1、setnx key value当且仅当key不存在,将key的值设置为value,并且返回1;若是给定的key已经存在,则setnx不做任何动作,返回0。public static Boolean setnx(final String key, final String value, final long seconds) { return ...转载 2019-05-24 17:29:19 · 1620 阅读 · 1 评论 -
redis分布式锁实现----jedisLock
转载自:http://www.cnblogs.com/0201zcr/p/5942748.html一、使用分布式锁要满足的几个条件:系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现) 共享资源(各个系统访问同一个资源,资源的载体可能是传统关系型数据库或者NoSQL) 同步访问(即有很多个进程同事访问同一个共享资源。没有...转载 2019-05-24 17:12:53 · 258 阅读 · 0 评论 -
了解redis pipeline
1. 参考的优秀文章Request/Response protocols and RTT2. 来源原来,系统中一个树结构的数据来源是Redis,由于数据增多、业务复杂,查询速度并不快。究其原因,是单次查询的数量太多了,一个树结构,大概要几万次Redis的交互。于是,尝试用Redis的Pipelining特性。3. 测试Pipelining使用与否的差别3.1. 不使用...转载 2018-09-26 16:02:07 · 158 阅读 · 0 评论 -
初探redis发布订阅
发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/sub server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向redis se...原创 2018-09-20 17:38:23 · 257 阅读 · 0 评论 -
redis单线程为什么效率很高
转自:https://blog.youkuaiyun.com/u010870518/article/details/79470556一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、...转载 2018-09-05 20:01:22 · 14598 阅读 · 0 评论 -
ShardedJedisPipeline 如何保证顺序取值
一、什么是pipeline?什么是ShardedJedis?由于pipeline和ShardedJedis的介绍和源码分析在网上已经有了,本文就不再赘述,直接给出链接:pipeline的介绍:http://blog.youkuaiyun.com/freebird_lb/article/details/7778919pipeline源码分析:http://blog.youkuaiyun.com/ouyang11...转载 2018-07-31 15:41:11 · 806 阅读 · 1 评论