随笔分类 - redis
摘要:RESP 是 Redis 序列化协议的简写。它是⼀种直观的⽂本协议,优势在于实现异常简单,解析性能极好。 Redis 协议将传输的结构数据分为 5 种最⼩单元类型,单元结束时统⼀加上回⻋换⾏符号\r\n。 间隔符号,在Linux下是\r\n,在Windows下是\n 1. 单⾏字符串 以 + 符号开
阅读全文
摘要:为什么Redis是单线程的 1.官方答案 因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。 IO多路复用技术 redis 采用网络IO多路复用技术来保证在多
阅读全文
摘要:在平时线上 Redis 维护⼯作中,有时候需要从 Redis 实例成千上万的 key 中找出特定前缀的 key 列表来⼿动处理数据,可能是修改它的值,也可能是删除 key。这⾥就有⼀个问题,如何从海量的 key中找出满⾜特定前缀的 key 列表来?Redis 提供了⼀个简单暴⼒的指令 keys ⽤来
阅读全文
摘要:当两个元素的距离不是很远时,可以直接使⽤勾股定理就能算得元素之间的距离。我们平时使⽤的「附近的⼈」的功能,元素距离都不是很⼤,勾股定理算距离⾜矣。不过需要注意的是,经纬度坐标的密度不⼀样 (地球是⼀个椭圆),勾股定律计算平⽅差时之后再求和时,需要按⼀定的系数⽐加权求和,如果不求精确的话,也可以不必加
阅读全文
摘要:UV 不⼀样,它要去重,同⼀个⽤户⼀天之内的多次访问请求只能计数⼀次。这就要求每⼀个⽹⻚请求都需要带上⽤户的 ID,⽆论是登陆⽤户还是未登陆⽤户都需要⼀个唯⼀ ID 来标识。如⼀个爆款⻚⾯⼏千万的UV,你需要⼀个很⼤的 set 集合来统计,这就⾮常浪费空间。如果这样的⻚⾯很多,那所需要的存储空间是惊
阅读全文
摘要:在我们平时开发过程中,会有⼀些 bool 型数据需要存取,⽐如⽤户 ⼀年的签到记录,签了是 1,没签是 0,要记录 365 天。如果使⽤ 普通的 key/value,每个⽤户要记录 365 个,当⽤户上亿的时候, 需要的存储空间是惊⼈的。 为了解决这个问题,Redis 提供了位图数据结构,这样每天的
阅读全文
摘要:Redis集群搭建与简单使用 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境。 redis 采用 redis-3.2.4 版本。 两台虚拟机都是 CentOS ,一台 CentOS6.5 (IP:192.168.31.245),一台 Ce
阅读全文
摘要:在Redis中设置主从有2种方式: 1.在redis.conf中设置slaveof 在Redis中设置主从有2种方式: 1.在redis.conf中设置slaveof a) slaveof <masterip> <masterport> 使用redis-cli客户端连接到redis服务,执行slav
阅读全文
摘要:1、阻塞读:如果线程⼀直阻塞在哪⾥,Redis 的客户端连接就成了闲置连接,闲置过久,服务器⼀般会主动断开连接,减少闲置资源占⽤。这个时候blpop/brpop会抛 出异常来。所以编写客户端消费者的时候要⼩⼼,注意捕获异常,还要重试。 锁冲突处理(客户端在处理请求时加锁没加成功) : 1. 直接抛出
阅读全文
摘要:使用redis的比较完美的加锁解锁 tags:redis read&write redis加锁和解锁 php 习惯性说一下写这篇文章要说明什么,我们经常用redis进行加锁操作,目的是为了解决并发可能带来的问题。但是使用redis加锁的方式有多种,本文对常见的几种方式进行解析,并提供一种相对完美的方
阅读全文
摘要:Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 以下实例演示了发布订阅是如何工作的。在我们实例中我们创建了订阅频道名为 redisChat: 现在,我们先重新开启个 redis 客户端,然后在
阅读全文
摘要:redis队列安全 模式: 安全的队列 Redis的列表经常被用作队列(queue),用于在不同程序之间有序地交换消息(message)。一个客户端通过 LPUSH 命令将消息放入队列中,而另一个客户端通过 RPOP 或者 BRPOP 命令取出队列中等待时间最长的消息。 不幸的是,上面的队列方法是『
阅读全文
摘要:redis秒杀 Redis原子性原理 摘要: 1、Redis是单进程单线程的网络模型,用的是epoll,poll,select网络模型,这些网络模型都是单线程处理网络请求 2、Redis的单线程处理所有的客户端连接请求,命令读写请求。(有些任务比如rdb和aof等操作是fork子进程处理的,不会影响
阅读全文
摘要:三、集群客户端命令(redis-cli -c -p port)可以设置后台启动 daemonize yes 集群 cluster info :打印集群的信息 cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关信息。 节点 cluster meet <ip> <
阅读全文
摘要:持久化 redis 有几种方式? 第⼀种是快照,第⼆种是 AOF ⽇志。 快照是⼀次全量备份,AOF ⽇志是连续的增量备份。 答: redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时 dump到磁盘上的RDB持久化),另外一种是AOF(append on
阅读全文
摘要:Redis内存淘汰指的是用户存储的一些键被可以被Redis主动地从实例中删除,从而产生读miss的情况,那么Redis为什么要有这种功能?这就是我们需要探究的设计初衷。Redis最常见的两种应用场景为缓存和持久存储,首先要明确的一个问题是内存淘汰策略更适合于那种场景?是持久存储还是缓存? 内存的淘汰
阅读全文

浙公网安备 33010602011771号