前言 在上一篇,我们简单介绍了redis数据类型中的String和hash两种常用数据类型的使用,本篇继续探讨redis数据结构中的另一种,list 列表 list简介 Redis列表是简单的字符串列表,可以按照插入顺序排序。 list存储多个数据,对进入list存储结构区域的数据通过先后顺序进行区分 底层采用类似双向链表的结构实现 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素) 基本操作 操作list时,既然说到底层是双向链表结构,就存在一个左和右的顺序问题,使…

2021年4月24日 0条评论 17点热度 阅读全文

目录 1. 简介  1.1 优势  1.2 key命名规范  1.3 Key相关命令 2 Redis中数据结构类型 3 String类型 3.1 String常用命令 3.2 String类型的应用场景 4 List类型 4.1 特点 4.2 List常用命令 4.3 List类型应用场景 5 Hash类型(散列) 5.1 特点 5.2 Hash常用命令 5.3 Hash类型应用场景 5.4 Hash类型不适用的场景 6 Set类型(集合) 6.1 特点 …

2021年4月24日 0条评论 20点热度 阅读全文

redis配置密码 1.通过配置文件进行配置 yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 #requirepass foobared 去掉行前的注释,并修改密码为所需的密码,保存文件 requirepass myRedis 重启redis sudo service redis restart #或者 sudo service redis stop sudo redis-server /etc/redis.conf 这个时候尝试登录redis,发现可以登上,但是执行具体…

2021年4月24日 0条评论 19点热度 阅读全文

目录 一、配置文件 redis.conf 的存放位置 二、Redis 的网络相关配置 1.bind 2.port 3.tcp-keepalive 三、Redis 的常规配置 1.loglevel 2.logfile 3.databases 四、Redis 的安全配置 1.requirepass 写在最后 一、配置文件 redis.conf 的存放位置   Redis 的安装根目录下(/opt/redis-5.0.2),Redis 在启动时会加载这个配置文件,在运行时按照配置进行工作。   如果我们需要使用到该配置文…

2021年4月23日 0条评论 18点热度 阅读全文

redisson实现小demo 根据redisson实现原理,整一个商品库存小demo,解决高并发情况下的商品库存多卖问题。 @RequestMapping("/deduct_stock") public String deductStock() { String lock="lockKey"; String threadId = UUID.randomUUID().toString(); try { Boolean result = stringRedisTemplate.opsForValue().setIfA…

2021年4月22日 0条评论 16点热度 阅读全文

最新学习了Redis的分布式锁相关的知识,一来为了加深记忆,二来顺便分享一下,锻炼一下自己的表达能力。所以就把学习的内容记录一下。 如果想直接看最终优化完的代码,可以直接看文章最后的代码即可。 前言 本文章中使用的redis连接工具是spring-boot-starter-data-redis中提供的StringRedisTemplate。 redisson使用的是redisson-spring-boot-starter中提供的Redisson。 基础业务逻辑 在一个高并发的商城系统中,为防止我们一般会把一个商品的…

2021年4月22日 0条评论 21点热度 阅读全文

参考《Redis设计与实现》 一、什么是SDS Redis是使用C语言进行编写,大家都知道C语言对于字符串有自己的字符类型char[],但是Redis并没有采用C语言自带的字符类型,而是自己构建了动态字符串的抽象类型 在github上下载到Redis的源码,查看sds.h文件,发现了如下定义 struct __attribute__ ((__packed__)) sdshdr5 { unsigned char flags; /* 3 lsb of type, and 5 msb of string length *…

2021年4月21日 0条评论 21点热度 阅读全文

Q:你们redis怎么做的分布式 A:我们公司redis用的murmurHash做的分片; Q:讲讲murmurHash的原理呗 A:额……这块没有深入了解过(真TM掉分) 哈希算法简单来说就是将一个元素映射成另一个元素,可以简单分类两类, 加密哈希,如MD5,SHA256等, 非加密哈希,如MurMurHash,CRC32,DJB等。 这里说说Jedis中的Shard是如何使用一致性hash的 首先是hash函数,在Jedis中有两种Hash算法可供选择,分别是MurMurHash和MD5. 按照Jedis的说法…

2021年4月20日 0条评论 18点热度 阅读全文

简单理解 关于缓存击穿的问题其实也很简单,就是一个热点数据,我们肯定会把它放在缓存里面,但是如果在流量的高峰期,这个热点数据突然过期了,那岂不是全部的流量都要打到数据库上,那缓存就形同虚设,数据库可能先报警一下,然后挂掉.其实这个问题我觉得是在实际问题中很常见,也应该在流量的高峰期提前做好准备的,比如双十一,那天的流量的大小就不用我描述有多恐怖了,如果这个时候热点数据在缓存中过期了,那对数据库造成的伤害… 解决方案 1、设置热点Key,自动检测热点Key,将热点Key的过期时间加大或者设置为永不过期,或者设置为逻辑…

2021年4月20日 0条评论 21点热度 阅读全文

redis作为分布式锁 redis的应用场景。 采用Redis的官方推荐的Redisson作为redis的分布式锁 第一种版本锁场景: 第二种版本使用StringRedisTemplate进行操作 第三种版本使用第三方组件redisson-----专门用于解决分布式问题。 引入依赖 redis重点面试题 redis的面试题。 redis的应用场景。 (1)作为缓存 (2)分布式锁 今天就来介绍分布式锁的使用场景。 采用Redis的官方推荐的Redisson作为redis的分布式锁 用redis实现分布式锁,解决高并…

2021年4月20日 0条评论 22点热度 阅读全文