Redis 分布式缓存拾遗

条目索引

条目正文

单点Redis的问题

b826de9534eeb702b9cbfc92ec3b0c97676ce5ae

多级缓存

0dccbec57151290b3e7dd9516a5230514a12dfb7

709c82e75a8e41403d69ec768ba149d066322837

1.JVM缓存
1.1 本地缓存 Caffeine
6576e460ce03f9dcde0c719b20fc7e2e7024ca44

1.2 实例
6b902b6b5d58c4f6bddff3b350f97f155049ca48

1.3 清除缓存的方法
1b7e292ae903361ef5df62d2c209a305fd23323b

实现tomcat的负载均衡

  1. 为了均匀请求,但是保证相同的用户落在同一个tomcat,确保保存的信息不会丢失

5cd1d948a898b2b906282ae8e9793937e9c2ba96

2.hash_uri
f17d9da5e8b71757b2cacbc402360e4856f03260

nginx配置tomcat的集群以及hash映射
cc182e090e7a4449fd2575b8c9b19e8a99b44ff3

总结

57e4e5ee1758b96ca23a41f6a25312581007224a

1.数据库接收的访问请求能力有限, 需要缓存来缓解其压力

2.client(浏览器)—-> OpenResty —–> Redis —-> Tomcat —>MySQL

于是我们就在 浏览器, OpenResty, Redis, Tomcat 添加缓存

3.多级缓存必定带来数据同步问题, 因此我们在在MySQL前添加一个canal进行缓存同步

Lua

语法略

Nginx本地缓存

多级缓存

本地, 浏览器, nginx, redis, tomcat
b4821085f622a70f0c582a132ad7dbb3f7612647

1.shard dict实现
1887565560d21b642f29349685766143adcbb910

62fb8b572fd80e3861faffd89c521017209011a1