![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 91
苹果香蕉西红柿
这个作者很懒,什么都没留下…
展开
-
redis 基础概述与使用
目录一. redis 概述redis 主从同步执行流程redis 淘汰策略SpringBoot 整合 redisStringRedisTemplate 与 RedisTemplateredis 支持事物控制与锁redis 设置key失效redis 指定库redis 的 setnx() 与 getset()封装操作 redis 数据的工具类二. java 操作 redis 各种类型数据示例一....原创 2020-04-20 15:47:26 · 171 阅读 · 1 评论 -
redis 十二. 分布式锁
目录一. 分布式锁概述二. redis 锁基础版示例三. redis 锁进阶 Redlock四. Redlock 分析解决集群环境master宕机数据不一致锁不住的问题锁的定时续期watchdog源码分析锁的可重入性分析释放锁分析另外还有几个api一. 分布式锁概述一个靠谱的分布式锁需要具备的条件1)独占: 同一时间内只允许一个线程获取到锁2)高可用: 例如使用redis做分布式锁,不能因为一个节点挂了而造成获取释放锁失败的情况3)防止死锁: 杜绝死锁,必须有超时控制,可撤销,有最终兜底跳出原创 2023-03-29 17:40:35 · 226 阅读 · 0 评论 -
redis 十五. 缓存穿透 与布隆过滤器原理
目录一. 布隆过滤简基础二. 布隆过滤器原理三. redis 缓存穿透Google 布隆过滤器Guava解决缓存穿透Redis 布隆过滤器解决缓存穿透(推荐)redis 安装布隆过滤器插件一. 布隆过滤简基础首先了解一个需求: 现有50亿个电话号码,如何快速准确的判断这些电话号码已经存在(这个问题的关键是大数据量,快速,判断是否存在)不管数据库还是redis,不管什么数据类型50亿都占用内存太大布隆过滤器解释: 实际是一个很长的二进制数组+一系列随机hash算法映射函数,主要用于判断一个元素是否存在原创 2023-03-29 17:38:15 · 195 阅读 · 0 评论 -
redis 十一. IO 多路复用
目录一. 基础一. 基础首先知道一下五种io模型有个概念Blocking IO: 阻塞IONoneBlockin IO: 非阻塞IOIO multiplexing (redis6实际应用的io) : IO多路复用signal driven IO: 信号驱动IOasynchronous IO: 异步IOIO multiplexing IO多路复用与redis : 是IO模型的一种,是Reactor设计模式,简单来说是通过监测文件的读写事件再通知线程执行相关操作,进而保证redis的原创 2023-03-29 17:08:47 · 1252 阅读 · 1 评论 -
redis 十. 线程基础
目录一. redis 基础复习与了解redis6二. redis 线程问题三. redis 与IO多路复用整个流程简单解释总结一. redis 基础复习与了解redis6redis官网, redis中文网站, redis命令参考网站此处以redis6.0.8或以上版本为例(查看自己redis版本命令"redis- server -v")按照redis6以上版本测试使用时,redis.conf下需要改几个配置redis 将所有数据放到内存中,内存的响应时长大约为100纳秒,对于小数据包,redi原创 2023-03-29 16:38:21 · 413 阅读 · 0 评论 -
redis 七. bitmap, hyperloglog, GEO 简单命令及应用场景
目录一. String 字符串类型使用场景举例二. Hash使用场景三. List使用场景四. Set使用场景五. Zset 有序集合使用场景高并发下使用Zset做统计分页显示(热评榜)六. 统计点击次数七. bitmap 与 hyperloglogbitmap使用场景(亿级数据收集统计)一. String 字符串类型String字符串类型,一个key对应value最大可以存512简单命令使用示例//1.单个键值对插入与获取set k1 v1get k1//2.一次多个键值对插入与获取原创 2023-03-29 15:44:42 · 845 阅读 · 0 评论 -
redis 六. list应用场景及底层分析
List 类型一. 简单命令示例二. java 操作示例三. 使用场景四. 底层分析一. 简单命令示例1.首先简单说明: List是一个双端链表的结构,内容是2的32次方减1个元素,大概40多亿,主要功能有push/pop等,一般用在栈,队列,消息队列等场景2.简单命令//1.向列表左边添加元素LPUSH key value[value...]//2.向列表右边添加元素RPUSH key value[value...]//3.查看列表LRANGE key start stop//4.获取原创 2023-03-29 15:37:34 · 690 阅读 · 0 评论 -
redis 五. SortedSet应用场景及底层分析
zSet 类型一. 简单命令示例二. java 操作示例三. 使用场景高并发下使用Zset做统计分页显示(热评榜)四. 底层分析一. 简单命令示例Zset有序集合,向集合中添加元素时,可以带一个分数//1.添加元素和该元素的分数ZADD key score member[score member...]//2.按照元素分数大小顺序返回索引从start到stop之间的所有元素ZRANGE key start stop[WITHSCORES]//3.获取元素分数ZSCORE key memb原创 2023-03-29 15:01:22 · 314 阅读 · 0 评论 -
redis 四. set应用场景及底层分析
Set 类型一. 简单命令示例二. java 操作示例一. 简单命令示例Set 可以看成是一个无重复数据容器简单命令示例//1.添加元素SADD key member[member...]//2.删除元素SREM key member[member...]//3.遍历集合中所有元素SMEMBERS key//4.判断元素是否存在SISMEMBER key member//5.获取集合元素总个数SCARD key//6.从集合中随机弹出一个元素,不删除SRANDMEMBER原创 2023-03-29 14:38:16 · 146 阅读 · 0 评论 -
redis 三. hash应用场景及底层分析
Hash 类型一. 简单命令示例二. java 操作示例三. 使用场景四. 底层分析一. 简单命令示例Hash 类型,可以简单理解为对应java的Map<String,Map<Object,object>>简单命令使用示例//1.一次设置一个字段值HSET key field value//2.一次获取一个字段值HGET key field//3.一次设置多个字段值HMSET key field value[field value...]//4.一次获取多个字原创 2023-03-29 10:58:47 · 395 阅读 · 0 评论 -
redis 二. string 应用场景及底层分析
String 字符串类型一. 简单命令示例二. java 操作示例基础setnx() 与 getset()三. 使用场景举例四. 底层分析SDS一. 简单命令示例String字符串类型,一个key对应value最大可以存512简单命令使用示例//1.单个键值对插入与获取set k1 v1get k1//2.一次多个键值对插入与获取mset k1 v1 k2 v2 k3 v3mget k1 k2 k3//3.递增数字 INCR key,每执行一次该命令,对应该key的值累计加1/原创 2023-03-29 10:57:01 · 101 阅读 · 0 评论