nosql
文章平均质量分 91
Kk_Chosen1
这个作者很懒,什么都没留下…
展开
-
详谈Redis分布式锁
问题描述随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的Java API并不能提供分布式锁的能力。为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题!分布式锁主流的实现方案:1. 基于数据库实现分布式锁2. 基于缓存(Redis等)3. 基于Zookeeper每一种分布式锁解决方案都有各自的优缺点:1. 性能:redis最原创 2022-04-01 18:05:22 · 971 阅读 · 0 评论 -
Redis常见问题——缓存穿透,缓存击穿,缓存雪崩
缓存穿透问题描述key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。解决方案一个一定不存在缓存及查询不到的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。解决方案:对空值缓存:如果一个查询返回的数据为空(原创 2022-04-01 17:38:44 · 168 阅读 · 0 评论 -
详谈Redis集群
在实际开发中会遇到一些问题,比如容量不够,redis如何进行扩容?并发写操作, redis如何分摊?另外,主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址、端口等信息。之前通过代理主机来解决,但是redis3.0中提供了解决方案。就是无中心化集群配置。那么什么是集群呢?Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。Redis 集群通过.原创 2022-03-31 19:51:31 · 1352 阅读 · 1 评论 -
详谈Redis主从复制
主从复制是什么主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主主从复制能干什么读写分离,性能扩展(如果说其中某一台从机宕机了,主机还可以去其他从机里面读取数据) 容灾快速恢复如图所示:应用向主机写入数据,主机向各从机复制数据,应用读取数据是在从机中读取数据注意:从机只能做读操作不能写入主从复制怎么玩拷贝多个redis.conf文件include(写绝对路径)开启daemonize yes原创 2022-03-30 21:13:42 · 733 阅读 · 0 评论 -
Redis6新数据类型
Bitmaps简介:命令:1.setbit<key><offset><value> 设置Bitmaps中某个偏移量的值(0或1)(offset:偏移量从0开始)实际例子:每个独立用户是否访问过网站存放在Bitmaps中, 将访问的用户记做1, 没有访问的用户记做0, 用偏移量作为用户的id。设置键的第offset个位的值(从0算起), 假设现在有20个用户,userid=1, 6, 11, 15, 19的用户对网站进行了访问, 那么当前Bitmaps初始化结原创 2022-03-27 16:17:47 · 1719 阅读 · 0 评论 -
redis常用五大数据类型以及操作
Redis键(key)keys * 查看当前库所有命令exists key 判断某个key是否存在type key 查看你的key是什么类型del key 删除指定的key数据unlink key 根据value选择非阻塞删除(仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。)ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期select 命令切换数据库dbsize 查看当前数据库的key的数量flushdb 清空当前库flush原创 2022-03-26 21:30:09 · 424 阅读 · 0 评论