- 博客(8)
- 收藏
- 关注
原创 Redis缓存设计及性能优化
1、什么是缓存穿透缓存穿透是指查询一个根本不存在的数据, 缓存和DB都不会命中,通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去了缓存保护后端存储的意义。造成缓存穿透的基本原因有两个:自身业务代码或者数据出现问题。 一些恶意攻击、 爬虫等造成大量空命中。解决办法:布隆过滤器(Bloom Filter)对于恶意攻击,向服务器请求大量不存在的数据造成的缓存穿透,还可以用布隆过滤器先做一次过滤,对于不存在的数据布隆过滤器
2021-08-13 23:23:02
533
原创 Redis高可用集群特性
Redis集群:Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误。redis单节点的主从模式,可以解决机器宕机的问题,因为redis可以在这种情况下进行主从切换,但是随着业务越来越大,对缓存的大小需求也越来越大,redis集群就是为了应对这种场景而诞生。1、分布式系统中的CAP定理&&BASE理论.
2021-08-13 23:10:59
313
原创 Redis高级特性&&持久化
1、Redis 发布订阅 序号 命令及描述 1 PSUBSCRIBE pattern [pattern ...] 订阅一个或多个符合给定模式的频道。 2 PUBSUB subcommand [argument [argument ...]] 查看订阅与发布系统状态。 3 PUBLISH channel message 将信息
2021-08-13 23:03:28
149
原创 Redis五种数据结构
1、String&&bitmap的api操作1.1 String的常用apiString是redis最常用的结构,进入redis客户端输入 help @string 可以查看api 序号 命令及描述 1 SET key value 设置指定 key 的值 2 GET key 获取指定 key 的值。 3 GETR
2021-08-13 22:53:32
136
原创 Redis是单线程的,为什么还这么快?
Redis6之前所说的单线程指的是:只有网络请求模块和数据操作模块是单线程的。而其他的如持久化存储模块、集群支撑模块等是多线程的。1、redis的单线程指的是什么?Redis在处理客户端的请求时,包括获取 (socket 读)、解析、执行、内容返回 (socket 写) 等都由一个顺序串行的主线程处理,这就是所谓的“单线程”。但如果严格来讲从Redis4.0之后并不是单线程,除了主线程外,它也有后台线程在处理一些较为缓慢的操作,例如清理脏数据、无用连接的释放、大 key 的删除等等。2、re.
2021-08-13 22:31:34
639
原创 并发三大特性可见性、有序性、原子性
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、从一个经典的程序理解可见性二、有序性2.读入数据总结一、从一个经典的程序理解可见性public class Visibility { public static boolean flag = true; public static void main(String[] args) throws InterruptedException { new Thr
2021-05-27 22:03:37
186
原创 关于位运算、位图的一些用法
1、打印一个整型的32位二进制public static void print(int num){ for (int i = 31; i >= 0 ; i--) { System.out.print( ( num & (1<<i) ) == 0 ? 0 : 1 ); }}2、num %2^$n$
2021-05-09 12:42:33
327
原创 安装tkinter出现错误
问题如下:Could not find a version that satisfies the requirement tkinter (from versions: )No matching distribution found for tkinter解决办法:sudo apt-get install python3-tk
2018-12-23 10:46:29
3653
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人