随笔分类 -  Redis

摘要:实现一个消息队列 本来打算利用Redis发布订阅模式来实现一个简单的消息队列,但我在工作中根本没用Redis来做消息队列。有几点原因 1. 数据持久化。 2. Redis只会发送消息给在线的消费者,处于离线状态的消费者将不会收到消息就算恢复过来。 3. 没有ACK机制,发送者不知道消费者到底消费了吗 阅读全文
posted @ 2020-05-07 17:03 RstarYan 阅读(235) 评论(0) 推荐(0)
摘要:实现原理 有兴趣看Redis pub/sub源码的可以移步 "这里" ,有中文注释的哦,感谢作者的奉献。 订阅(Subscribe) 先直接上源码 主要做了两件事情 1. 判断新的channel是否存在于客户端的pubsub_channels中,如果不存在执行下面步骤 2. 将channel添加到客 阅读全文
posted @ 2020-05-07 17:01 RstarYan 阅读(202) 评论(0) 推荐(0)
摘要:发布订阅模式 发布订阅模式可以说是耳熟能详了,它是属于设计模式中的行为模式,最大的好处就是起到解耦的作用,发布者不用关心在消息产生之后需要做什么,发布者只需要在通道里说“我发布了”,不用管有什么业务逻辑需要处理也不用管有多少的逻辑要处理,很简单明了。 我们平时用来解耦业务的消息队列就是实现了发布订阅 阅读全文
posted @ 2020-05-07 16:59 RstarYan 阅读(851) 评论(0) 推荐(0)
摘要:Redis客户端使用RESP(Redis序列化协议)与Redis服务器进行通信,RESP在位于TCP之上,而网络模型上客户端和服务器是保持的双工的连接。如图1 而一个简单的请求/响应的串行通信模型如下图: 串行化通信 串行化通信比较简单,上面那张图就很表面的反应出来这种通信方式,同一个Connct 阅读全文
posted @ 2020-05-07 16:58 RstarYan 阅读(2733) 评论(0) 推荐(1)
摘要:String string是Redis最基本的数据类型,一个key对应一个string。 string 类型是二进制安全的。意思是 redis 的 string 任意格式的二进制数据。比如jpg图片或者序列化的对象。 string 类型的值最大能存储 512M 相关常用命令 应用场景 string类 阅读全文
posted @ 2020-04-27 14:36 RstarYan 阅读(1113) 评论(0) 推荐(1)
摘要:基本概念 按照惯例,研究一个新东西要由浅入深,先进行一个简单介绍,这一块就直接引用菜鸟教程的 Redis概述 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key value数据库。 Redis 与其他 key value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内 阅读全文
posted @ 2020-04-23 12:55 RstarYan 阅读(272) 评论(0) 推荐(0)

$(function(){ $('#blogTitle h1').addClass('bounceInLeft animated'); $('#blogTitle h2').addClass('bounceInRight animated'); // 删除反对按钮 $('.buryit').remove(); initCommentData(); }); function initCommentData() { $('.feedbackItem').each(function() { var text = $(this).find('.feedbackListSubtitle .layer').text(); // 将楼层信息放到data里面 // $(this).find('.blog_comment_body').attr('data-louceng', text.replace(/^#/g, '')); if($(this).find('.feedbackListSubtitle .louzhu').length>0) $(this).addClass('myself'); var avatar = $(this).find('> .feedbackCon > span').html() || 'https://pic.cnblogs.com/face/sample_face.gif'; $(this).find('> .feedbackCon > .blog_comment_body').append('') }); } $(document).ajaxComplete(function(event, xhr, settings) { // 监听获取评论ajax事件 if(settings.url.indexOf('/mvc/blog/GetComments.aspx') >= 0) { initCommentData(); } });