标签:NoSQL技术文章
功能实现02 2.功能01-短信登录 2.1基于Session实现登录 2.1.1思路分析 2.1.2代码实现 2.1.2.1发送短信验证码 发送短信验证码: 发送验证码的接口为:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手机号>
一、redis主从复制 主从复制:是存储数据的服务结构 主服务器:接受客户端连接的服务器 从服务器:自动与主服务器保持数据一致的服务器 配置主从复制 1、环境准备 主服务器 主机名:master IP地址:192.168.11.101/24 从服务器 主机名:node01
1. 为什么要持久化 Redis是基于内存存储的数据库,如果遇到服务重启或者崩溃,内存中的数据将会被清空。所以为了确保数据安全性和可靠性,我们需要将内存中的数据持久化到磁盘上。 持久化不仅可以防止由于系统故障、重启或者其他原因导致的数据丢失。还可以用于备份、数据恢复和迁移等操作。 2. Redi
功能02-商铺查询缓存 3.商铺详情缓存查询 3.1什么是缓存? 缓存就是数据交换的缓冲区(称作Cache),是存储数据的临时地方,一般读写性能较高。 缓存的作用: 降低后端负载 提高读写效率,降低响应时间 缓存的成本: 数据一致性成本 代码维护成本 运维成本 3.2需求说明 如下,当我们点击商店
简介 从数据类型上体现就是,同一个数据类型,在不同的情况下会使用不同的编码类型,底层所使用的的数据结构也不相同。 字符串对象 字符串对象的编码可以是 int、raw 和 embstr 三者之一。 embstr 编码是专门用于保存简短字符串的一种优化编码方式,与 raw 编码会调用两次内存分配函数
功能02-商铺查询缓存02 知识补充 (1)缓存穿透 https://blog.csdn.net/qq_45637260/article/details/125866738 缓存穿透(cache penetration)是指用户访问的数据既不在缓存当中,也不在数据库中。出于容错的考虑,如果从底
功能02-商铺查询缓存03 3.功能02-商铺查询缓存 3.6封装redis工具类 3.6.1需求说明 基于StringRedisTemplate封装一个工具列,满足下列需求: 方法1:将任意Java对象序列化为json,并存储在string类型的key中,并且可以设置TTL过期时间 方法2:将任
《Redis设计与实现》读书笔记 简单动态字符串 SDS的定义 结构: buf数组:用于保存字符串 len属性:记录SDS中保存字符串的长度 free属性:记录buf中未使用字节数量 遵循C字符串以空字符串结尾的惯例,保存空字符串的字节不计入长度 SDS与C字符串的区别 常数复杂度获取字符串长度
1. Redis集群简介 1.1 什么是Redis集群 Redis集群是一种通过将多个Redis节点连接在一起以实现高可用性、数据分片和负载均衡的技术。它允许Redis在不同节点上同时提供服务,提高整体性能和可靠性。根据搭建的方式和集群的特性,Redis集群主要有三种模式:主从复制模式(Mast
一、主从Redis部署(docker) 首先,我准备了两台linux,一台准备当作master,ip是192.168.241.128,另一台是当作slave,ip是192.168.241.129。 1. 安装redis docker pull redis 2. 下载对应版本的redis.conf
一、Redis Cluster 工作原理 在引入哨兵机制后,解决了Redis主从架构Master故障时的主从切换问题,保证了Redis服务可用性。但依旧无法解决单机节点出现的写入性能瓶颈(网卡速率、单机内存容量、并发数量) 1、早期为解决单机性能瓶颈问题采用的解决方案: 1、客户端分片:由客户端程
1.检测虚拟机环境 1.1 bit检测命令:getconf LONG_BIT(建议使用64bit做开发) 1.2 gcc环境检测:gcc -v 如果不具备gcc环境,则使用yum -y install gcc- c++命令进行c++环境的安装 2.开始安装 2.1 下载redis: 进入官网找
功能03-优惠券秒杀01 4.功能03-优惠券秒杀 4.1全局唯一ID 4.1.1全局ID生成器 每个店铺都可以发布优惠券: 当用户抢购时,就会生成订单,并保存到tb_voucher_order这张表中。订单表如果使用数据库的自增id就存在一些问题: id的规律性太明显:用户可以根据id猜测一些信
功能03-优惠券秒杀02 4.功能03-优惠券秒杀 4.4一人一单 4.4.1需求分析 要求:修改秒杀业务,要求同一个优惠券,一个用户只能下一单。 在之前的做法中,加入一个对用户id和优惠券id的判断,如果在优惠券下单表中已经存在,则表示该用户对于这张优惠券已经下过单了,不允许重复购买 4.4.2
背景:在搜索的时候经常会有一种场景就是忽略大小写,不管你输入的是全大写还是全小写还是大小写混合,希望都能够搜索出结果。 解决思路:Elasticsearch中的lowercase normalizer将文本转换为小写,并将其作为规范形式存储在索引中。这可以确保在搜索和比较文本时忽略大写字母的差异,
功能03-优惠券秒杀03 4.功能03-优惠券秒杀 4.6Redisson的分布式锁 Redis分布式锁—Redisson+RLock可重入锁实现篇 4.6.1基于setnx实现的分布式锁问题 我们在4.5自己实现的分布式锁,主要使用的是redis的setnx命令,它仍存在如下问题: 4.6.
前言 平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题。 针对分布式锁的实现,目前比较常用的就如下几种方案: 基于数据库实现分布式锁 基于 Redis 实现分布式锁 【本文】 基于 Zookeeper
1:普通的Redis分布式锁的缺陷我们在网上看到的redis分布式锁的工具方法,大都满足互斥、防止死锁的特性,有些工具方法会满足可重入特性。如果只满足上述3种特性会有哪些隐患呢?redis分布式锁无法自动续期,比如,一个锁设置了1分钟超时释放,如果拿到这个锁的线程在一分钟内没有执行完毕,那么这个锁
少点代码,多点头发 本文已经被GitHub收录,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 入职第一周,我被坑了 最近刚入职新公司,本来想着这刚来新公司,一般都是熟悉熟悉公司同事,看看组内工程文档,找几个demo自己练
环境:Docker + ( Redis:5.0.5 * 3 ) 1、拉取镜像 docker  pull  redis:5.0.5 2、创建Redis容器 创建三个 redis 容器: redis-node1:6379 redis-node2:6380 redis-node3:6381 dock