经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 Redis

Redis-第十章节-链表 - Mr-Tsing

目录 数组和链表 链表 对比 总结 1、数组和链表 数组: 数组会在内存中开辟一块连续的空间存储数据,这种存储方式有利也有弊端。当获取数据的时候,直接通过下标值就可以获取到对应的元素,时间复杂度为O(1)。但是如果新增或者删除数据会移动大量的数据,时间复杂度为O(n)。数组的扩容机制是:如...[2021/3/1]

redis配置文件注解

# Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with the file path as first argum...[2021/3/1]

redis数据结构和对象一

1. SDS:简单动态字符串(simple dynamic string) Redis没有直接使用C语言的字符串,而是自己构建了一种名为简单动态字符串类型,并将SDS用作Redis的默认字符串。 SDS的定义 struct sdshdr { buf 中已占用空间的长度 ...[2021/3/1]

Redis基础:持久化

Redis基础:持久化

Blog:博客园 个人 什么是持久化?简单来讲就是将数据放到断电后数据不会丢失的设备中,也就是我们通常理解的硬盘上。 首先我们来看一下数据库在进行写操作时到底做了哪些事,主要有下面五个过程: 客户端向服务端发送写操作(数据在客户端的内存中); 数据库服务端接收到写请求的数据(数据在服...[2021/3/1]

Redis-第九章节-动态字符串 - Mr-Tsing

目录 概述 SDS(动态字符串) SDS(动态字符串)与c语言字符串的区别 1、概述 String类型底层实现的简单动态字符串sds,是可以修改的字符串。它采用预分配冗余空间的方式来减少内存的频繁分配。 2、SDS动态字符串 动态字符串是以 \0 为分隔符。最大容量是redis...[2021/2/22]

一文掌握Redis的三种集群方案(小结)

在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性、可靠性要求较高,则需要引入Redis的集群方案。虽然现在各大云平台有提供缓存服务可以直接使用,但了解一下其背后的实现与原理总还是有些必要(比如面试), 本文就一起来学习一下Redis的几种集群方案。 ...[2021/2/18]

详解如何清理redis集群的所有数据

1. 背景:生产测试后redis中产生大量数据 生产前需要清理reids集群中的数据。、 你看有很多key呢: 使用工具 使用命令,查看是否有数据: keys * 2. 清理步骤 2.1 任意登录一台redis机器 执行下面脚本: ...[2021/2/18]

SpringBoot和Redis实现Token权限认证的实例讲解

一、引言 登陆权限控制是每个系统都应必备的功能,实现方法也有好多种。下面使用Token认证来实现系统的权限访问。 功能描述: 用户登录成功后,后台返回一个token给调用者,同时自定义一个@AuthToken注解,被该注解标注的API请求都需要进行token效验,效验通过才可以正常访问,实...[2021/2/18]

Redis内存碎片

目录一、什么是内存碎片二、如何判断有内存碎片三、内存碎片是怎么形成的3.1 jemalloc分配机制导致3.2 数据的修改删除操作导致四、如何清理内存碎片4.1 重启4.2 redis内存碎片自动清理机制五、和现实的类比 一、什么是内存碎片 redis数据删除后,所占用内存不会马上还...[2021/2/18]

Redis缓存雪崩、击穿、穿透

目录一、缓存三大问题二、缓存雪崩2.1 雪崩场景2.1 应对方案三、缓存击穿3.1 击穿场景3.2 应对方案四、缓存穿透4.1 穿透场景4.2 应对方案 一、缓存三大问题 这三个问题一旦发生,就会导致大量请求进入后台的数据库,如果有大量并发同时到达数据库,有可能会导致数据库宕机,...[2021/2/18]

Redis内存回收淘汰策略

目录一、Redis最大内存1.1 预估最大内存1.2 设置最大内存二、内存淘汰策略2.1 删除过期键对象2.2 内存溢出控制策略三、内存淘汰流程以及影响 一、Redis最大内存 1.1 预估最大内存 Redis作为内存数据库,需要尽量把那些频繁被访问的热点数据放入Redis。 按照...[2021/2/18]

Redis实现分布式锁

目录一、分布式锁二、基于单个redis节点的分布式锁2.1 示意图2.2 redis命令支持2.2.1 redis 命令支持-加锁-setnx2.2.2 redis 命令支持-释放锁-del2.2.3 setnx和del的组合的问题2.2.4 setnx和del的问题解决2.3 单节点r...[2021/2/18]

Redis-第八章节-应用场景 - Mr-Tsing

目录 概述 详解 1、概述 Redis支持五种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合)。 2、详解 1、String(字符串) 定义: String 是 redis 最基本的类型,一个 key 对应一个 val...[2021/2/18]

Redis五大类型及底层实现原理

目录 简单动态字符串  链表  字典  跳跃表  整数集合  压缩列表  对象  对象的类型与编码 字符串对象 列表对象 哈希对象 集合对象 有序集合对象 类型检查与命令多态 内存回收 对象共享 对象的空转时长 ...[2021/2/18]

Redis Lua 脚本

Redis Lua 脚本

简介: redis脚本使用lua解释器来执行脚本。   常用命令: 1.eval 2.evalsha 3.script_load 4.script_exists 5.script_flush 6.script_kill   命令详解: 1.eval 可用版本: &g...[2021/2/18]

Redis DEBUG 调试命令

本文主要记录一下redis调试相关的命令。 命令总览: 1.PING 2.ECHO 3.OBJECT 4.SLOWLOG 5.MONITOR 6.DEBUG_OBJECT 7.DEBUG_SEGFAULT   命令介绍: 1.PING 可用版本: >=1.0.0 时间复杂度...[2021/2/18]

Redis分布式锁升级版RedLock及SpringBoot实现方法

分布式锁概览 在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用synchronized语法和ReetrantLock去保证,这实际上是本地锁的方式。但是现在公司都是流行分布式架构,在分布式环境下,如何保证不同节点的线程同步执行呢?因此就引出了分布式锁,...[2021/2/1]

CPU架构对redis性能的影响分析

目录一、主流多核CPU1.1 多核CPU缓存结构1.2 对redis的影响二、NUMA CPU2.1 UMA(SMP)架构VS NUMA 架构2.2 对redis的影响 本文主要基于cpu的架构和运行机制来分析cpu架构对redis的性能影响。 一、主流多核CPU 1.1 多核C...[2021/2/1]

如何判断redis变慢了

redis作为内存数据库,最大的特点是快,那么如何判断redis变慢,变慢的标准是什么,因为机器的配置环境是不一样的,不能简单通过响应的时间来简单对比。 redis提供了工具用来检测redis的性能基线,如果超过基线一定范围,便可以认为redis是变慢了。 本文针对以上问题展开介绍。...[2021/2/1]

Redis-第六章节-事务 - Mr-Tsing

目录 简介 执行过程 特点 案例 watch 简介 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 执行过程 开始事务 -> 命令入队 -> 执行事务。 特点 ① 批量操作...[2021/2/1]

Redis学习笔记:命令

Redis学习笔记:命令

本文更新于2021-01-31,使用Redis 6.0.8,操作系统为Deepin 15.11。 目录字符串APPENDBITCOUNTBITOPDECRDECRBYGETGETBITGETRANGEINCRINCRBYINCRBYFLOATSETSETBITSETNXSETRANGE...[2021/2/1]

AOF写入和AOF重写对redis的阻塞以及解决方案

目录AOF写入策略AOF重写阻塞解决阻塞 AOF写入策略 由appendfsync参数控制: 可配置的值 说明 always 命令写入buf后调用系统调用fsync同步AOF文件,fsync完成后线程返回。 no 命令写入buf后调用系统调用write操作,后续fs...[2021/2/1]

操作系统swap对redis的性能的影响以及解决方案

操作系统swap对redis的性能的影响以及解决方案

目录一、操作系统SWAP二、Redis为什么会触发swap三、查看Redis swap情况四、解决Redis swap 一、操作系统SWAP swap是操作系统的行为,是指当内存不足时,操作系统将内存的数据拿出一部分放入磁盘,数据从内存和磁盘换入换出的机制,涉及到磁盘的IO。一旦发生...[2021/2/1]

操作系统内存大页(THP)对redis性能的影响

目录THPTHP对redis的影响关闭THP redis启动日志的warning: WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create lat...[2021/2/1]

Redis实战之商城购物车功能的实现代码

Redis实战之商城购物车功能的实现代码

目标 利用Redis实现商城购物车功能。 功能 根据用户编号查询购物车列表,且各个商品需要跟在对应的店铺下;统计购物车中的商品总数;新增或删减购物车商品;增加或减少购物车中的商品数量。 分析 Hash数据类型:值为多组映射,相当于JAVA中的Map。适合存储对象数据类型。因...[2021/2/1]

同一份数据Redis为什么要存两次

前言 在 Redis 中,有一种数据类型,当在存储的时候会同时采用两种数据结构来进行分别存储,那么 Redis 为什么要这么做呢?这么做会造成同一份数据占用两倍空间吗? 五种基本类型之集合对象 Redis 中的集合对象是一个包含字符串类型元素的无序集合,集合中元素唯一不可重复。 集合对...[2021/1/25]

Redis源码系列(一)

Redis源码系列——内存管理 函数原型 src/zmalloc.h 函数指针与void*指针的使用,提供了一个泛型的机制 /*stringfication*/ #define __xstr(s) __str(s) #define __str(s) #s /*prototypes*/...[2021/1/25]

深入理解Redis之简单动态字符串

深入理解Redis之简单动态字符串

目录SDSSDS与C字符串的区别SDS获取字符串长度复杂度为O(1),C字符串为O(N)SDS杜绝了缓存区溢出减少修改字符串时带来的内存重分配次数二进制安全 Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串...[2021/1/25]

Redis基础之事务

如果Redis需要执行一组命令,为了保持数据的一致性,连续性,需要用到事务(Transaction),本文以一些简单的小例子,简述Redis事务相关内容,仅供学习分享使用,如有不足之处,还请指正。 Redis事务涉及命令 DISCARD:取消事务,且DISCARD是与MULTI成对出现...[2021/1/25]

Redis-第五章节-8种数据类型 - Mr-Tsing

目录 一、Redis对key的操作 二、五种数据类型 String类型 List(集合) Set(集合) Hash(哈希) Zset(有序集合) 三、三种特殊数据类型 geospatial(地理位置) hyperloglog(优点:占用内存小) Bitmap(位图) 一、R...[2021/1/25]

Redis-第二章节-简介 - Mr-Tsing

简介 概要: 起源: 2008年,意大利一家创业公司Merzia推出了一款基于mysql的网站统计系统LLOOGG,然而没过多久公司的创世人对mysql的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,并于2009年完成。一直持续更新到现在的6.0.9版本。 N...[2021/1/18]

Redis基础之命令篇

温故而知新,本文主要以一些简单的小例子,简述Redis相关数据类型和对应的操作命令,仅供学习分享使用,如有不足之处,还请指正。 Redis数据类型 Redis支持的数据类型,主要有以下五种: string(字符串):string类型是Redis最基本的数据类型,一个键最大能存储512...[2021/1/18]

Redis 设计与实现 10:五大数据类型之有序集合

有序集合 sorted set (下面我们叫zset 吧) 有两种编码方式:压缩列表 ziplist 和跳表 skiplist。 编码一:ziplist zset 在 ziplist 中,成员(member)和分数(score)是挨在一起的,元素按照分数从小到大存储。 举个例子,我们...[2021/1/18]

Redis-第三章节-安装和配置 - Mr-Tsing

官网地址 https: redis.io/ 下载 wget https: download.redis.io/release redis-6.0.10.tar.gz 安装 cd redis-6.0.10 make ...[2021/1/18]

Redis-第四章节-基础知识 - Mr-Tsing

基础知识 5种基本数据类型 String(字符串) String是redis最基本的数据类型,一个key对应一个value。 String类型的值最大能存储512M。 Hash(哈希) Hash相当于双重map。 每个Hash可以存储40多亿键值对。 List(列表) redis...[2021/1/18]

Redis基础之配置文件

一般情况下,Redis配置文件中提供了很多默认的选项,可以不做任何修改而直接使用,本文主要简述配置文件中常用的配置选项,仅供学习分享使用,如有不足之处,还请指正。 Redis启动方式 Redis的启动时,必须有一个配置文件与之相匹配(如:/root/myredi redis.conf)...[2021/1/18]

redis-集群(1)

redis-集群(1)

目录一、集群简介二、Redis Cluster数据分区原理2.1 Hash分区方案2.1.1节点取余分区2.1.2一致性哈希2.2 Redis Cluster数据分区方案三、搭建集群3.1 准备节点3.2 创建集群四、节点通信原理4.1 Go ip消息4.2 通信节点选择 一、集群简介...[2021/1/18]

使用docker搭建redis主从的方法步骤

 一、构建 Docker 环境 1、创建 dockerfile FROM centos:latest RUN groupadd -r redis && useradd -r -g redis redis RUN yum -y update &...[2021/1/11]

Redis 设计与实现 9:五大数据类型之集合

集合对象的编码有两种:intset 和 hashtable 编码一:intset intset 的结构 整数集合 intset 是集合底层的实现之一,从名字就可以看出,这是专门为整数提供的集合类型。 其结构定义如下,在 intset.h: typedef struct intset...[2021/1/11]

redis-哨兵

redis-哨兵

目录一、基本概念和架构1.1 基本概念1.2 架构二、部署演示2.1 部署主从节点2.2 部署哨兵节点2.3 故障转移演示三、客户端连接(配置提供者)3.1 代码3.2 原理四、实现原理4.1 三个定时任务4.2 主观下线和客观下线4.3 领导者Sentinel节点选举4.4 故障转移...[2021/1/11]

sessionState~RedisSessionStateProvider高可用的实现

早在几年前就有了se ionState进行共享se ion的方式,今天总结一下高可用redis实现的共享se ion的方式 sentinel集群搭建 工作过程图 配置 Redis数据服务配置 首先配置Redis的主从服务器,修改redis.conf文件如下 主服务配置 bi...[2021/1/4]

Redis集群搭建采坑总结

Redis集群搭建采坑总结

背景     先澄清一下,整个过程问题都不是我解决的,我在里面就是起了个打酱油的角色。因为实际上我负责这个项目,整个过程也比较清楚。之前也跟具体负责的同事说过,等过段时间带他做做项目复盘。结果一直忙,之前做的事情都快忘了也没带他做复盘。所以趁着还记得,总结一下这个问...[2021/1/4]

Redis安装与启动

 概述 Redis【REmote DIctionary Server】作为当前比较流行的NoSql数据库,以其高性能,高可用的的特点,应用越来越广泛,深得各大企业和开发人员的青睐,本文主要简述Redis的下载,安装,启动,关闭的整个流程,仅供学习分享使用,如有不足之处,还请指正...[2021/1/4]

Redis 6.0 多线程性能测试结果及分析

  单线程的Redis一向以简洁高效著称,但也有其阿喀琉斯之踵:阻塞!单个线程在最容易产生瓶颈的网络读写(Redis大key,也包括其他一些重量级的操作SORT/SUNION/ZUNIONSTORE,集中性的expired key清理,内存溢出的maxmemory-policy...[2020/12/28]

Redis 设计与实现 4:字典

Redis 中,字典是基础结构。Redis 数据库数据、过期时间、哈希类型都是把字典作为底层结构。 字典的结构 哈希表 哈希表的实现代码在:dict.h/dictht ,Redis 的字典用哈希表的方式实现。 typedef struct dictht { 哈希表数组,俗称的哈...[2020/12/28]

redis-复制

redis-复制

目录一、复制介绍二、复制配置2.1 建立复制2.1.1 命令2.1.2 演示2.2 断开复制3.2.1 直接断开3.2.2 切换到其他master三、拓扑结构四、复制过程五、数据同步原理5.1 psync命令需要的组件5.1.1 主从复制偏移量5.1.2 主节点复制积压缓冲区5.1.3 ...[2020/12/28]

PHP操作Redis常用命令

连接本地的 Redis 服务 $redis = new Redis(); $redis->connect(''127.0.0.1'', 6379); $redis->auth(''123456''); /*********************Key(键)*****...[2020/12/22]

redis-持久化(1)

redis-持久化(1)

目录一、RDB1.1 触发机制1.2 流程说明1.3 RDB优缺点二、AOF2.1 开启AOF2.2 AOF流程三、重启加载流程 持久化即备份,这是单机高可用的策略之一,有了备份,就可以在Redis故障通过备份进行恢复。redis持久化主要有RDB和AOF。 RDB RD...[2020/12/21]

[Redis] 哈希表的Rehash机制

哈希表的完整结构 , 因为他是多个哈希一层层嵌套的 , 所以会是这样的结构       触发rehash的时机 字典类型容量变化过程叫做rehash,需要满足一定的条件才能触发扩容机制 服务器当前没有进行BGWRITEAOF或者BGSAVE命令...[2020/12/21]

[Redis] Redis的消息机制- 发布订阅

目前go-fly客服系统是通过内存来记录客服和访客的映射关系 , 不能用于分布式的环境下 , 只能单机使用 , 后续如果要支持分布式 , 可以考虑redis的pub ub机制 1.基于pub ub的特点,他的典型使用场景就是实时消息系统,比如即时聊天,群聊等功能 2.还常用作减轻高并...[2020/12/21]

357
2
记录数:468 页数:1/1012345678910下一页尾页
加载更多
 友情链接: NPS