前言:话说这是一枚Teambition的面试+分题,闲(菜)的没事干,就拿过来撸了,一开始什么概念都没有,果断下载Kue,看了Kue的源码和实现。难道我要写高仿Kue咯 。不得不叹服人家对redis的把弄和设计,redis队列状态流程借鉴了kue。wujohns 司机问为什么起名为fxqueue,简单来说,不想让大家知道我抄的像kue哈哈。 传送门……继续阅读 » cyanprobe 8年前 (2017-03-24) 3930浏览 1评论0个赞
前言:纯属意淫,希望撸过的大神分享正确思路,前几天吃饿了么吃撑了,写个练手的项目也用到了红包模块。没有查任何资料,纯属自我意淫。要做到饿了么那种形式。废话不多说,下订单,订单完成可以来一发红包。。。正文:这里的coupon,退单后发现后面的用户已经没法领取了,而且不存在什么鸟评论,一个红包有10人可领取,生成链接生存期,子包有生存期。这里我意淫用Re……继续阅读 » cyanprobe 8年前 (2016-10-17) 4197浏览 0评论0个赞
前言:今天一天在折腾用LUA脚本一次性返回车队集合(set)中的司机位置(hash),因为跨类型获取,新建多个redis实例循环可能更加耗费资源于是便想到用lua脚本来操作一次性返回所有内容,“all in the memory”,这样在redis的lua脚本解析器中执行能减去通信的消耗,lua不会写起来费劲,最后勉强采用神一样的拼接返回了。这个脚本语言真……继续阅读 » cyanprobe 8年前 (2016-09-12) 3768浏览 0评论1个赞
前言:之前,在折腾的小项目里用到一个计时器的项目。背景:订单在20min后若没有被答复,实现一个推送事件。之前准备用cron模块,后来发现模块可能达不到要求,需要多个实例,而且不能销毁上一个实例(终止计时)。接下来看一下geemo抄别的博客大神的背景。本文所说的定时任务或者说计划任务并不是很多人想象中的那样,比如说每天凌晨三点自动运行起来跑一个脚本。这……继续阅读 » cyanprobe 9年前 (2016-07-30) 8853浏览 2评论1个赞
前言:列表类型(LIST)可以储存一个有序字符串,常用的方法是从两端进行元素操作,也可以获取某一个片段,不过大量数据的索引存在瓶颈(不建议那么做)。列表类型内部使用双向链表(double linked list)实现的,因此从几千万个元素的两端获取的获取元素,其效率与从10个元素两端获取效率是相同的。应用场景分析:例如微博,空间,新鲜事消息推送等。因为……继续阅读 » cyanprobe 9年前 (2016-07-20) 3333浏览 0评论0个赞
前言:今天有人谈到进程调度,可能要折腾,开脑洞想了想,不管如何都要用到优先级队列,然后自然想到Redis的列表。要想身体好,文档看到老。前言:实现优先级队列的方法 1.Sorted-Sets,2.LIST实现。1.Sorted-Sets实现科普:Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Se……继续阅读 » cyanprobe 9年前 (2016-06-21) 4756浏览 0评论0个赞
内容开始: 1 LPUSH的作用是将一个或多个值 value 插入到列表 key 的表头,基本语法:LPUSH key value [value …]例如:LPUSH friend chaiquan //若存在多个value 将按照从左到右的顺序插入 如 LPUSH point a b c 则实为 c b a2 L……继续阅读 » cyanprobe 9年前 (2016-04-09) 3465浏览 0评论0个赞
内容开始:1. SETEX指令的作用是将值 value 关联到 key ,并将 key 的生存时间设为 seconds ( 以秒为单位)。如果 key 已经存在,SETEX命令将覆写旧值,语法格式:例如: SETEX name 60 “ren gou” //建立了一个60秒生存期的键值name->”ren……继续阅读 » cyanprobe 9年前 (2016-04-08) 3158浏览 0评论1个赞
前言:Redis是非常火的一个高性能的key-value数据库,之前接触是用来持久化session,其实这玩意还可以方便的充当计数器,快速跨进程通信等。高性能的内存数据库,这是发布的一些数据:测试完成了50个并发执行100000个请求。结果:读的速度是110000次/s,写的速度是81000次/s 。所有操作都是原子性的,看到这个想到了什么,对的,无脑刷脚……继续阅读 » cyanprobe 9年前 (2016-04-08) 3359浏览 0评论0个赞