zl程序教程

redis篇

  • 服务器iscsi存储挂载_redis查询命令

    服务器iscsi存储挂载_redis查询命令

    大家好,又见面了,我是你们的朋友全栈君。 当前包含磁盘[root@xifenfei ~]# fdisk -lDisk /dev/sda: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot S

    日期 2023-06-12 10:48:40     
  • spring相关注解_redis和session区别

    spring相关注解_redis和session区别

    大家好,又见面了,我是你们的朋友全栈君。前言众所周知,spring 从 2.5 版本以后开始支持使用注解代替繁琐的 xml 配置,到了 springboot 更是全面拥抱了注解式配置。平时在使用的时候,点开一些常见的等注解,会发现往往在一个注解上总会出现一些其他的注解,比如 @Service:@Target({ElementType.TYPE}) @Retention(RetentionPolic

    日期 2023-06-12 10:48:40     
  • 玩转 Spring Boot 应用篇(引入Redis解决店铺高并发读的问题)(十七)

    玩转 Spring Boot 应用篇(引入Redis解决店铺高并发读的问题)(十七)

    0. 0.1. 回顾(菜菜的店铺目前存在的问题)为了大家能够熟练应用 Spring Boot 相关技术,前几天菜菜同学基于 Spring Boot 快速搭建了一个商品售卖网站(V1),然后一起演示了商品超卖问题(V2),并对其进行分析,引入了悲观锁、乐观锁、可重入锁来解决商品超卖的问题,并借机提了提 CAS 的概念,以及 CAS 带来的 ABA 问题的解决方案。菜菜的店铺技术实现很简单,基于 My

    日期 2023-06-12 10:48:40     
  • mongoose、koa2和redis的简单安装使用

    mongoose、koa2和redis的简单安装使用

    mongoose的介绍及使用参考之前文章:点击这里koa2简介Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。

    日期 2023-06-12 10:48:40     
  • 故障分析 | Redis Cluster 分片内存异常使用不均问题诊断

    故障分析 | Redis Cluster 分片内存异常使用不均问题诊断

    作者:任仲禹 爱可生 DBA 团队成员,擅长故障分析和性能优化,文章相关技术问题,欢迎大家一起讨论。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。背景诊断内存使用分布监控异常与正常实例内存使用对比碎片率使用情况Bigkeys 扫描分析结论背景问题发生背景为某生产 Redis 集群(版本 Redis 5.0.10 ,架构为 30 片以上),该集群中某

    日期 2023-06-12 10:48:40     
  • 第二章· Redis管理实战

    第二章· Redis管理实战

    数据类型管理实战曾志高翔, 江湖人称曾老大。多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 个人博客:"DBA老司机带你删库跑路"数据类型String: 字符串类型Hash: 哈希类型List: 列表类型Set: 集合类型Sorted set: 顺序集合类型管理实战通用操作#查看所有的key

    日期 2023-06-12 10:48:40     
  • Redis集群搭建

    Redis集群搭建

    Redis Cluster(Redis集群)简介redis是一个开源的key value存储系统,受到了广大互联网公司的青睐。redis3.0版本之前只支持单例模式,在3.0版本及以后才支持集群,我这里用的是redis3.0.0版本;redis集群采用P2P模式,是完全去中心化的,不存在中心节点或者代理节点;redis集群是没有统一的入口的,客户端(client)连接集群的时候连接集群中的任意节点

    日期 2023-06-12 10:48:40     
  • Redis缓存击穿、雪崩、穿透

    Redis缓存击穿、雪崩、穿透

    缓存穿透 简单地就是用户请求透过redis直接进入到mysql当中进行查询,通常是一个不存在的key,在数据库查询为null。每次请求落在数据库、并且高并发。数据库扛不住会挂掉。 当用户的请求进入到Redis当中的时候,Redis当中并没有用户查询的键。Redis会告诉用户没有查询到此Key,随后请求会被直接转发到后台MySQL当中MySQL当中自然也不会存在此键值对,所以当大量的请求落在MyS

    日期 2023-06-12 10:48:40     
  • Redis主从复制搭建

    Redis主从复制搭建

    准备环境192.168.1.100MASTER6379192.168.1.101SLAVE6379 脚本每个人的环境不同.可能有的会有问题,按照自己的环境来改和执行 [root@localhost redis]# vim start.sh //就是不想手动敲那么累,全是命令拼凑 #!/bin/bash Redis_home=/usr/local/redis # start dow redis

    日期 2023-06-12 10:48:40     
  • redis manager教程_下载万能钥匙并安装

    redis manager教程_下载万能钥匙并安装

    大家好,又见面了,我是你们的朋友全栈君。 目录 一、下载Redis Desktop Manager 二、安装Redis Desktop Manager 三、连接Redis服务器 四、Redis Desktop Manager的使用 五、resis命令组 一、下载Redis Desktop Manager https://pan.baidu.com/s/1Jvr9MbgFn4UJh

    日期 2023-06-12 10:48:40     
  • Redis 非关系型数据库学习(三)---- Redis 基础知识

    Redis 非关系型数据库学习(三)---- Redis 基础知识

    文章目录Redis 非关系型数据库学习(三)---- Redis 基础知识(1)Redis 数据库select 切换当前数据库Dbsize 查看数据库key数量(2)查看数据库的keykeys [partten](3)清除数据库的 keyflushdb 清除当前db的keyflushall 清除所有db的key(4)Redis默认端口号6379的由来Redis 非关系型数据库学习(三)---- R

    日期 2023-06-12 10:48:40     
  • 异步编程规避Redis的阻塞(中)

    异步编程规避Redis的阻塞(中)

    2.2 磁盘交互阻塞点2.2.1 AOF日志同步写磁盘I/O一般费时费力,需重点关注。所以Redis开发者也早就把Redis设计为:子进程生成RDBAOF日志重写这俩操作由子进程负责执行,慢速的磁盘I/O就不会阻塞主线程。但Redis直接记录AOF日志时,会根据不同写回策略对数据做落盘保存。 一个同步写盘操作耗时大约1~2ms,若大量写操作需记录在AOF日志,并同步写回,就会阻塞主线程。2.3

    日期 2023-06-12 10:48:40     
  • Redis远程连接Redis客户端

    Redis远程连接Redis客户端

    大家好,又见面了,我是你们的朋友全栈君。 在虚拟机的linux系统中一 进入redis下的目录二 启动 redis服务三 连接客户端四 在windows本地中安装 redis可视化软件五 在linux关闭客户端六 设置防火墙规则:我的因为已经设置过 设置防火墙规则:firewall-cmd –zone=public –add-port=6379/tcp –permanent七设置密码:修改r

    日期 2023-06-12 10:48:40     
  • 细探Redis scan命令

    细探Redis scan命令

    前言这周遇到的一个小需求是通过Go实现对Redis的hash field实时上限检查,而因为是线上的服务,所以这个上限检查不能对redis pod造成负担,跟组内导师交流学习后了解到可以通过redis的HScan命令来实现这个需求 需要了解的几个词cursor(游标):数据库中常见的一个概念,通常提供一种从表中检索出的数据进行操作的灵活手段,能从包含数据记录的结果集中每次提取一条记录的机制reh

    日期 2023-06-12 10:48:40     
  • Redis的过期策略&内存淘汰策略

    Redis的过期策略&内存淘汰策略

    前言Redis作为当下最受欢迎的NoSQL数据库之一,在很多场景下都会使用到;Redis的存储分为内存存储、磁盘存储和log文件三部分,重启后,Redis可以从磁盘重新将数据加载到内存中,这些可以通过配置文件对其进行配置,正因为这样,Redis才能实现持久化而内存存储向来都离不开内存管理的问题,本文就从Redis的内存过期策略和内存淘汰机制展开来讲 需要了解的几个词LRU:LRU是Least R

    日期 2023-06-12 10:48:40     
  • 基于 Redis 的分布式锁

    基于 Redis 的分布式锁

    前言分布式锁在分布式应用中应用广泛,想要搞懂一个新事物首先得了解它的由来,这样才能更加的理解甚至可以举一反三。首先谈到分布式锁自然也就联想到分布式应用。在我们将应用拆分为分布式应用之前的单机系统中,对一些并发场景读取公共资源时如扣库存,卖车票之类的需求可以简单的使用同步或者是加锁就可以实现。但是应用分布式了之后系统由以前的单进程多线程的程序变为了多进程多线程,这时使用以上的解决方案明显就不够了。因

    日期 2023-06-12 10:48:40     
  • 鸡肋的Redis事务

    鸡肋的Redis事务

    没错,Redis也有事务管理,但是功能很简单,在正式开发中也并不推荐使用。但是面试中有可能会问到,所以本文简单谈一谈Redis的事务。通过这篇文章,你会了解Redis为什么要提供事务?Redis事务基本指令和使用方法CAS乐观锁是什么?Redis事务为什么不支持回滚?1. 为什么要用事务我们知道Redis的单个命令是原子性的,比如get、set、mget、mset等指令。原子性是指操作是不可分割的

    日期 2023-06-12 10:48:40     
  • Redis之入门介绍

    Redis之入门介绍

    1、入门概述1.1、是什么Redis:REmote DIctionary Server(远程字典服务器)是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器Redis 与其他 key - value 缓存产品有以下三个特点 Redis支持数据

    日期 2023-06-12 10:48:40     
  • Redis 非关系型数据库学习(一) ---- Redis 的安装

    Redis 非关系型数据库学习(一) ---- Redis 的安装

    文章目录Redis 学习(一) ---- Redis 的安装Window安装1、github下载 zip2、下载好的压缩包3、开启redis服务,客户端测试是否连通4、redis 简单操作Linux 安装(1)环境安装 gcc(2)安装 redis 源码文件(3)安装相关文件及运行环境(4)查看根据源码安装的 redis 相关程序(5)修改Redis 程序的配置文件(6)修改具体配置Redis 学

    日期 2023-06-12 10:48:40     
  • 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)

    腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)

    文章目录腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)1、打开腾讯云短信服务2、创建短信签名3、创建短信正文模板4、等待全部审核完毕即可5、发送短信6、短信业务实战(SpringBoot+Redis)(1)设置配置信息(2)使用腾讯云发送短信的API(3)重新配置Redis的序列化(4)设置接口,实现验证码的发送(5)效果验证结语腾讯云短信服务实现 Java

    日期 2023-06-12 10:48:40     
  • redis缓存设计以及经典问题分析

    redis缓存设计以及经典问题分析

    1 缓存基本思想1、不同的存储介质访问延迟不一样,相同成本存储容量不一样:SSD/DISK、Memory、L3 cache、L2 cache、L1 cache 五种存储介质,访问延迟逐渐降低,但是同等成本的容量却逐渐增大。2、时间局限性原理被获取过一次的数据在未来会被多次获取3、以空间换时间开辟一块高速独立空间,提供高速访问4、性能成本权衡访问延迟性低、性能越高,等容量成本越高2 缓存优势提升访问

    日期 2023-06-12 10:48:40     
  • Redis Lua实现秒杀业务增强

    Redis Lua实现秒杀业务增强

    问题场景比如一个秒杀业务,我们需要判断用户是否有优惠券、是否已经参与过秒杀、库存是否足够、扣减库存、插入订单号业务。上述每一步都需要操作DB,这样的接口性能一定跟不上。解决办法原理:添加库存,String类型即可用户获取优惠券时:添加一个set集合,用于保存所有的优惠券。lua代码执行:判断用户是否有优惠券、是否参与秒杀、库存是否足够由set集合负责,扣件库存由redis的阻塞队列操作。开启线程任

    日期 2023-06-12 10:48:40     
  • Redisson初级原理 & Redisson主从一致性的原理

    Redisson初级原理 & Redisson主从一致性的原理

    参考于:https://www.bilibili.com/video/BV1cr4y1671t?p=67&share_source=copy_web&vd_source=164fe0eebbe1de2dc8ea1db9b173c783这是常规Redisson使用代码 @Autowired Redisson redisson; @Test public

    日期 2023-06-12 10:48:40     
  • Redis 消息队列思想

    Redis 消息队列思想

    Redis实现消息队列有3中方式利用Redis的LIST数据结构的有序特性Pub/Sub 发布订阅模式StreamLIST消息队列List数据类型的入口、出口不一致。可以保证有序性常用命令 LPUSH与RPOP 或 RPUSH与LPOP是非阻塞式队列LPUSH与BRPOP 或 RPUSH与BLPOP是阻塞式队列缺点:无法避免消息丢失(拿到消息后,消息就在队列删除了,如果宕机,消息相当于没了)、只支

    日期 2023-06-12 10:48:40     
  • Redis客户端中文乱码[通俗易懂]

    Redis客户端中文乱码[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。Redis客户端中文乱码$ redis-cli redis 127.0.0.1:6379> set ‘name’ ‘中文’ OK redis 127.0.0.1:6379> get ‘name’ “\xd6\xd0\xce\xc4” redis 127.0.0.1:6379> 客户端查看乱码,这个情况我们只要将修改客户端命令行就可

    日期 2023-06-12 10:48:40     
  • [redis] hashmap数据结构

    [redis] hashmap数据结构

    大家好,又见面了,我是你们的朋友全栈君。一、描述redis的其中一个数据类型为hashmap,即散列表正常实现hashmap:1.分配固定大小的桶,大小为n2.计算key的hash值,并且与n取模,得到在桶的索引位置index3.根据2中计算的index,然后存放在对应的桶中4.当遇到碰撞情况,则会通过链表来解决碰撞问题二、redis中数据结构定义struct dictht:为hash table

    日期 2023-06-12 10:48:40     
  • 理解Redis的内存

    理解Redis的内存

    简介Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。所以,监控 Redis 的内存消耗并了解 Redis 内存模型对高效并长期稳定使用 Redis 至关重要。Redis 内存统计redis提供了下面命令来查询当前redis内存的使用情况。info memory复制执行结果如下:具体指标如下所示:属性说明used_memoryRedis 分配器

    日期 2023-06-12 10:48:40     
  • 【Redis源码】Redis命令执行过程

    【Redis源码】Redis命令执行过程

    简介需要了解Redis命令执行过程,请先了解Redis启动过程和Redis事件监听。 Redis启动过程分析 Redis事件监听在Redis事件监听中我们了解到在创建文件监听事件的时候 acceptTcpHandler就是的执行函数。具体实现如下:for (j = 0; j < server.ipfd_count; j++) { if (aeCreateFileEvent(ser

    日期 2023-06-12 10:48:40     
  • 【Redis源码】mget命令

    【Redis源码】mget命令

    通过get命令只能获取单个key的值,如果想获取多个key的值,可以通过mget命令来实现。mget返回所有指定key的值。格式:mget key [key …]复制Redis所有的key-value存储在redisDb的dict中,所以通过一个for循环,就可以依次从数据库中获取到key-value。void mgetCommand(client *c) { int j; ad

    日期 2023-06-12 10:48:40     
  • 【Redis源码】strlen命令

    【Redis源码】strlen命令

    简介strlen命令从数据库中获取到value,返回value字符串的长度。格式:strlen key复制strlen 命令Redis获取到值robj的ptr之后,如果值类型是string类型,通过sdslen函数便可以获取到value的长度。如果值类型不是string类型,通过递归可以求出整型值的字符串长度:uint32_t digits10(uint64_t v) { if (v &l

    日期 2023-06-12 10:48:40     
  • 【Redis源码】append命令

    【Redis源码】append命令

    简介数据库已经有了key,它的值为value。当我们发现value值需要追加字符串却又不想直接用set命令覆盖原值时,可以用append命令来实现。命令格式:append key value复制说明: 将value追加到原值的末尾,如果key不存在,此命令等同于set key value命令。append 实现现在介绍在key已经存在的情况下进行的操作。我们知道,只有value为字符串时才可以追加

    日期 2023-06-12 10:48:40