nosql
文章平均质量分 70
ball球
这个作者很懒,什么都没留下…
展开
-
redis stream中pending数据的处理
1. pending数据的产生在消费者组模式下,当一个消息被消费者取出,为了解决组内消息读取但处理期间消费者崩溃带来的消息丢失问题,STREAM 设计了 Pending 列表,用于记录读(XREADGROUP)取但并未处理完毕(未ACK)的消息。2. 对pending数据的几种处理方式下面的讨论基于几点:面向的场景为多个无差别消费者(每个消费者名子相同,功能相同)在同一group下消费任务。我们要保证的是,每个任务至多只做一次。代码实现是在使用redis stream实现队列服务一文的封装基础原创 2020-11-12 14:39:19 · 4537 阅读 · 0 评论 -
使用redis stream实现队列服务
1. stream类型Redis5.0引入了Stream类型。该Stream类型的出现,几乎满足了消息队列具备的全部内容,包括但不限于:消息ID的序列化生成消息遍历消息的阻塞和非阻塞读取消息的分组消费未完成消息的处理关于stream的具体介绍可以参见:Introduction to Redis StreamsStream 类型2. 队列接口简介我们基于redis stream实现了一个基础的,类似beanstalk的队列服务。用于多个无差别的消费者从一个队列消费任务的情况。如果原创 2020-11-12 09:55:37 · 1065 阅读 · 0 评论 -
redis6.0 客户端缓存(Client side caching)及实践
1. 什么是客户端缓存(Client side caching)通常的缓存会放在应用和DB之间,比如redis。客户端缓存是指在应用服务内部再加一层缓存,也就是内存缓存,从而进一步提升访问速度。2. redis 6.0为此做了什么2.1 client cache的问题client cache的问题是缓存应该何时失效,更确切的说是如何保持与远端数据的一致性。为client cache设置过期时间是一个选择,但时间设置多久是一个问题。太长会有时效性问题,太短缓存的效果会打折扣。2.2 redis原创 2020-07-24 19:08:15 · 2222 阅读 · 0 评论 -
分析redis key大小的几种方法
当redis被用作缓存时,有时我们希望了解key的大小分布,或者想知道哪些key占的空间比较大。本文提供了几种方法。一. bigKeys这是redis-cli自带的一个命令。对整个redis进行扫描,寻找较大的key。例:redis-cli -h b.redis -p 1959 --bigkeys输出:# Scanning the entire keyspace to find big...原创 2019-01-08 10:33:17 · 43761 阅读 · 7 评论 -
Redis的OBJECT命令(翻译)
查看原文请点击这里OBJECT subcommand [arguments [arguments …]]2.2.3及以上版本可用时间复杂度:O(1).OBJECT命令允许你从内部查看给定的Redis对象。它对查错很有帮助,同时也让你了解某个key使用了何种编码类型,这对节省存储空间很有帮助。当使用Redis作为缓存时,你可以依据OBJECT命令获取的信息制定key的淘汰策略。OB...翻译 2018-12-29 17:21:11 · 2421 阅读 · 0 评论 -
redis的MULTI与PIPELINE
对redis的multi和pipeline机制做更详细的分析对比原创 2018-01-16 14:24:45 · 6843 阅读 · 2 评论 -
使用phpredis批量向sort set中加入元素
问题zAdd, 按文档所述,可以向sort set中加入一个或多个元素。加入多个元素的方式如下:$redis->zAdd('key', score1, 'val1', score2, 'val2', ...);这种api的形式在实际使用中非常的不方便,特别是要批量加入元素时。解决个人觉得,方便的api形式应该接受kv形式的元素数组,数组的每项是val=>score。 代码如下:/* * 批量向s原创 2017-03-25 11:40:07 · 5115 阅读 · 0 评论 -
php中使用redis HyperLogLogs
问题前些日子学习了reids的HyperLogLogs(不熟悉此功能的同学可参看这里),想用php试试。我在php中用的redis扩展是phpredis,查了一下api,居然没有HyperLogLogs相关的api(pfadd, pfcount等) -_-|||曙光总不至于自己按reids协议用原生socket写吧…详细查了下文档,发现了这个api–rawCommand,可以让你直接使用原生redi原创 2016-09-20 17:21:53 · 2726 阅读 · 0 评论 -
phpredis subscribe超时问题及解决
问题描述redis提供了pub/sub功能,但在使用phpredis的subscribe时发现这样一个问题,代码如下(sub.php):<?php/*监听demo频道,打印收到的信息*/function process($redis, $chan, $msg){ var_dump($msg);}$redis = new Redis();$res = $redis->connect('原创 2016-09-18 15:51:11 · 12408 阅读 · 0 评论 -
redis HyperLogLogs(译文)
原文链接请猛戳这里HyperLogLog(HLL)是一种基于概率的数据结构,用于统计集合中不同元素的个数。通常要完成这项工作所需的内存大小与集合中不同元素的个数成正比。不过,有一种使用精度换取空间的做法,也就是使用较小的内存完成工作,但得到的结果会有一定误差。对于reids来说,这个误差小于1%。这个做法的神奇之处在于,无论集合中有多少元素,你也至多只需要12k内存!从概念上说,HLL的api和se翻译 2016-09-13 11:56:40 · 2776 阅读 · 0 评论 -
redis bitmaps(译文)
Bitmaps原链接请猛戳这里bitmaps不是一种实际的数据类型,本质上说,它是定义在字符串类型上的一组位操作方法。单个bitmaps的最大长度是512MB,即2^32个比特位。有两种类型的位操作:一类是对特定bit位的操作,比如设置/获取某个特定比特位的值。另一类是批量bit位操作,例如在给定范围内统计为1的比特位个数。bitmaps的最大优势是节省存储空间。例如,在一个以自增id代表不同用户的翻译 2016-08-31 11:37:08 · 1239 阅读 · 0 评论 -
redis主备同步配置方法
1. 配置主备假设主机ip:10.136.16.146 port:6789 备机ip:10.136.30.144我们有两种方式为其配置备机方法1:修改备机配置文件redis.conf中增加daemonize yesslaveof 10.136.16.146 6789# 如果主机有密码,则修改下面一行即可# masterauth <master-password>在备机上启动redisredi原创 2016-08-29 11:53:07 · 9488 阅读 · 0 评论 -
redis主从同步原理
1. 概述整体过程概述如下: 1. 初始化配置好主从后,无论slave是初次还是重新连接到master, slave都会发送PSYNC命令到master。 如果是重新连接,且满足增量同步的条件(3.1中详述),那么redis会将内存缓存队列中的命令发给slave, 完成增量同步(Partial resynchronization)。否则进行全量同步。正常同步开始任何对master的写操作都会原创 2016-08-30 10:16:59 · 6047 阅读 · 0 评论 -
深入php redis pconnect
pconnect, phpredis中用于client连接server的api。The connection will not be closed on close or end of request until the php process ends. 这是api说明中的一句原文那么问题来了: 1. php process ends是指一次php执行完结,还是fpm的终结?如果是后者,那原创 2015-07-21 16:50:06 · 25748 阅读 · 20 评论 -
redis slowlog
slowlog (阅读原文) 此命令用于读取和重置redis慢请求日志redis slow log概述redis的slow log记录了那些执行时间超过规定时长的请求。执行时间不包括I/O操作(比如与客户端进行网络通信等),只是命令的实际执行时间(期间线程会被阻塞,无法服务于其它请求)。 有两个参数用于配置slow log: slowlog-log-slower-than:设定执行时间,单位是翻译 2015-07-20 18:00:03 · 9863 阅读 · 0 评论 -
mongoDB及其php扩展安装
刚接触mongoDB,一切从零开始。搞了一下午,搞定了安装,整理一下。一.mongoDB的安装我是在Linux下进行安装的,步骤如下:1. 下载安装包一定要注意自己的机器是32位还是64位,不然下来的包无法使用。我开始就是下错了包,安装后一执行就提示Floating point exception,白折腾半天。下载页面http://www.mongodb.org/downloa原创 2013-05-23 10:09:06 · 15614 阅读 · 0 评论