NoSQL

Redis 的 GeoHash详解

Redis 在 3.2 版本以后增加了地理位置 GEO 模块,意味着我们可以使用 Redis 来实现摩拜单车「附近的 Mobike」、美团和饿了么「附近的餐馆」这样的功能了。 用数据库来算附近的人 地图元素的位置数据使用二维的经纬度表示,经度范围 (-18...

Redis持久化与主从复制的实践

为什么需要持久化 Redis是基于内存的NoSQL数据库,读写速度自然快,但内存是瞬时的,在redis服务关闭或重启之后,redis存放在内存的数据就会丢失,为了解决这个问题,redis提供了两种持久化方式,以便在发生故障后恢复数据。 持久化选项 redi...

Redis做数据持久化的解决方案及底层原理

之前的文章介绍了Redis的简单数据结构的相关使用和底层原理,这篇文章我们就来聊一下Redis应该如何保证高可用。 数据持久化 我们知道虽然单机的Redis虽然性能十分的出色, 单机能够扛住10w的QPS,这是得益于其基于内存的快速读写操作,那如果某个时间...

浅谈Redis处理接口幂等性的两种方案

前言:接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。接口幂等...

在K8s上部署Redis集群的方法步骤

一、前言 二、准备操作 三、StatefulSet简介 四、部署过程 1.创建NFS存储 2.创建Configmap 3.创建Headless service 4.创建Redis 集群节点 5.初始化Redis集群 6.创建用于访问Service 五、测试...

Redis禁用命令、危险命令及规避方法

FLUSHALL FLUSHDB 命令会清空数据,而且从不失败,对于线上集群非常危险。 KEYS * 命令,当数据规模较大时使用,会严重影响Redis性能,也非常危险。 如果从根本上规避这些风险呢? Redis提供了非常简单且有效的方法,直接在配置文件中设...

Redis教程之代理ip池设计方法详解

前言 众所周知代理 ip 因为配置简单而且廉价,经常用来作为反反爬虫的手段,但是稳定性一直是其诟病。筛选出优质的代理 ip 并不简单,即使付费购买的代理 ip 源,卖家也不敢保证 100% 可用;另外代理 ip 的生命周期也无法预知,可能上一秒能用,下一秒...

Redis有序集合类型的常用命令小结

一、有序集合类型 有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序而已。Redis中的有序集合类型,实际上是在集合类型上,为每个元素都关联一个分数,有序实际上说的是分数有序,我们根据分数的范围获取集合及其他操作。集合的元素依然是不...

嵌入式Redis服务器在Spring Boot测试中的使用教程

1、概述 Spring Data Redis提供了一种与Redis实例集成的简单方法。 但是,在某些情况下,使用嵌入式服务器比使用真实服务器创建开发和测试环境更方便。 因此,我们将学习如何设置和使用嵌入式Redis服务器。 2、依赖 让我们首先添加必要的依...

Redis Template实现分布式锁的实例代码

前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种...