Redis中scan命令的深入讲解
前言熟悉Redis的人都知道,它是单线程的。因此在使用一些时间复杂度为O(N)的命令时要非常谨慎。可能一不小心就会阻塞进程,导致Redis出现卡顿。有时,我们需要针对符合条件的一部分命令进行操作,比如删除以test_开头的key。那么怎么获取到这些key呢?在Redis2.8版本之前,我们可以使用keys命令按...
2024-01-10redis通过位图法记录在线用户的状态详解
前言在进入今天的主题前,先简单地解释下Redis中的位图到底是什么。Redis官方文档对于位图的介绍如下:位图不是一个真实的数据类型,而是定义在字符串类型上的面向位的操作的集合。由于字符串类型是二进制安全的二进制大对象,并且最大长度是 512MB,适合于设置 2^32个不同的位。位操作分为两...
2024-01-10Redis基础学习之管道机制详析
前言Redis服务是一种C/S模型,提供请求-响应式协议的TCP服务,所以当客户端请求发出,服务端处理并返回结果到客户端,一般是以阻塞形式等待服务端的响应,但这在批量处理连接时延迟问题比较严重,所以Redis为了提升或弥补这个问题,引入了管道技术:可以做到服务端未及时响应的时候,客户端...
2024-01-10玩转Redis搭建集群之Sentinel详解
前言Redis作为内存数据库,需要具备高可用的特点,不然如果服务器宕机,还在内存里的数据就会丢失。我们最常用的高可用方法就是搭建集群,master机器挂了,可以让slave机器顶上,继续提供服务。但是Redis集群是不会自动进行主从切换的,也就是说,如果主节点非常不争气的在凌晨3点挂了,那么运...
2024-01-10redis4.0入门小结
目录前言一、redis简介二、开始三、配置详解四、数据类型以及相关操作五、发布订阅六、事务前言redis作为nosql家族中非常热门的一员,也是被大型互联网公司所青睐,无论你是开发、测试或者运维,学习掌握它总会为你的职业生涯增色添彩。当然,你或多或少已经了解redis,但是你是否了解其中的...
2024-01-10如何使用Redis保存用户会话Session详解
前言PHP内置的绘画存储机制是把全部的会话数据保存在服务器上的文本文件里面,这些文件通常都是保存在服务器上的临时目录里。如果并发量大,读写效率非常低。而Redis对高并发的支持非常好,所以,可以使用redis替代文件存储session。下载源码session_set_save_handler函数PHP的session_set_save_handler函数...
2024-01-10利用redis实现排行榜的小秘诀
前言排行榜作为互联网应用中几乎必不可少的一个元素,其能够勾起人类自身对比的欲望,从而来增加商品的销量。对于排行榜的需求,redis有一个数据结构非常适合做这件事,那就是有序集合(sorted set)。在日常一些简单的活动开发中,我经常会碰到需要对用户的分值等进行排行,此时一般会选择redis的有...
2024-01-10关于Redis你可能不了解的一些事
引子Redis 是一个高性能分布式的key-value数据库。它支持多种数据结构,并可应用于缓存、队列等多种场景下。使用过Redis的小伙伴们可能对这些已经非常熟知了,下面我想来谈谈Redis也许并不被每个人了解的那点事。Redis持久化机制刚看到标题你可能会说,我知道,不就是RDB和AOF嘛。这些已经是老生...
2024-01-10Redis字符串对象实用笔记
字符串对象字符串数据类型是Redis里最常用的类型了,它的键和值都是字符串,使用起来非常的方便。虽然字符串数据类型的值都统称为字符串了,但是在实际存储时会根据值的不同自动选择合适的编码。字符串对象的编码一共有三种:int、raw、embstr。Redis对象Redis用统一的数据结构来表示一个对象...
2024-01-10Redis 2.8-4.0过期键优化过程全纪录
前言之前 白馨(陌陌-技术保障部存储工程师 )在Redis技术交流群里,总结了一下Redis从2.8~4.0关于过期键相关的fix记录,非常有帮助,但有些东西未尽详细,本文将进行详细说明。先从一个问题来看,运行环境如下:Redis: 2.8.19db0:keys=10000000,expires=10000000主从结构从下图中可以看到,在从节点get hello非...
2024-01-10