- 博客(100)
- 收藏
- 关注
原创 Redis一主二从Sentinel监控配置(保姆级教程),linux系统教程
| IP地址 | 节点角色 | 端口 || — | — | — || 192.168.211.104 | Redis Master/ Sentinel | 6379/26379 || 192.168.211.105 | Redis Slave/ Sentinel | 6379/26379 || 192.168.211.106 | Redis Slave/ Sentinel | 6379/26379 |关闭防火墙:由于是自己学习使用,我们不针对专门的端口最策略(在公司这一块有专门的运维同时来做
2021-11-13 15:22:28
1909
原创 Redis-数据库、键过期的实现,java程序设计实用教程第五版
Redis 是一个 k-v 存储的键值对数据库。其中字典 dict 保存了数据库中的所有键值对,这个地方叫做 keyspace 直译过来就是“键空间”。所以我们就可以这么认为,在 redisDb 中我们使用 dict(字典)来维护键空间。keyspace 的 kay 是数据库的 key,每一个key 是一个字符串对象。注意不是字符串,而是字符串对象。keyspace 的 value 是数据库的 value,这个 value 可以是 redis 的,字符串对象,列表对象,哈.
2021-11-13 15:18:53
302
原创 Redis(二十五):Sentinel——Redis的哨兵模式原理,java集合详解视频
Sentinel实现Redis高可用性的一个解决方案首先我们来理解什么是高可用性高可用性通常来描述一个系统的平均无故障时间,即服务器正常对外提供服务的时间,通过减少服务器的停工时间Sentinel(哨岗、哨兵)是Redis的高可用性的解决方案之一。由一个Sentinel实例组成的Sentinel系统可以监视整体来说是由一个或者多个Sentinel实例去组成的Sentinel系统,该系统可以监视多个任意多个主从服务器(一旦发现主服务器宕机了,就要在其属下的从服务器进行选举,充当主服务器),当被监视的
2021-11-13 15:17:12
1162
原创 Redis 笔记之 Java 操作 Redis(Jedis),java中高级面试宝典
(TTL 以秒为单位)可用版本: >= 2.6.0返回值: 当 key 不存在时,返回 -2 。当 key 存在但没有设置剩余生存时间时,返回 -1 。否则,以毫秒为单位,返回 key 的剩余生存时间。注意 : Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。RANDOMKEY 指令语法 : RANDOMKEY作用 : 从当前数据库中随机返回(不删除) 一个 key 。可用版本: >= 1.0
2021-11-13 15:15:39
728
原创 redis 发布订阅 性能测试,复盘上次Redis缓存雪崩事故
主节点3 订阅configserver频道127.0.0.1:6379> subscribe configserverReading messages… (press Ctrl-C to quit)“subscribe”“configserver”(integer) 1从节点1 订阅configserver频道从节点2 订阅configserver频道从节点3 订阅configserver频道127.0.0.1:6379> subscribe configser
2021-11-13 15:13:26
1476
原创 Redis 中 RDB 和 AOF 持久化有啥区别?看这儿,你就懂了,java并发编程实战读后感
GitHub地址:https://github.com/abel-max/Java-Study-Note/tree/master概念======================================================================Redis 是内存数据库,数据存储在内存中,一旦服务器进程退出,数据就丢失了,所以 Redis 需要想办法将存储在内存中的数据持久化到磁盘。Redis 提供了两种持久化功能:RDB (Redis Database):生成 R
2021-11-13 15:11:35
312
原创 ReactJS实战之组件和Props详解,java中级开发工程师面试题
补全属性:function Hello(props) {return 这是Hello组件 - {props.name} - {props.age} - {props.gender}}ES6 中应该这么写:ReactDOM.render(123<Hello {…me}>, document.getElementById('example'));注意这些 props 是只读的哦:function Hello(props) {props.name = ‘javascript’
2021-11-13 15:09:31
837
原创 【图解计算机网络】物理层和MAC层的亲密关系,ubuntulinux基础教程
Hub采取广播模式,若每一台电脑发出的包,局域网内每个电脑都能收到,那就麻烦了。必须解决如下问题(MAC层要解决的):包发给谁?谁接收?这里用到一个物理地址 - 链路层地址。但因该层主要解决媒体接入控制,所以常被称为MAC地址。解决这个问题牵扯该层的网络包格式。比如以太网,该层的最开始,就是目标MAC地址、源MAC地址。大部分的类型是IP数据包,然后IP里面包含TCP、UDP,以及HTTP等。有了目标MAC地址,数据包在链路上广播,MAC的网卡才能发现,这个包是给它的。MAC的网卡接收这个包
2021-11-12 11:49:21
391
原创 【Web前端】5分钟掌握画布元素的使用,2021京东Java面试真题
使用画布元素,快速绘制一个中小学教学使用的工具,效果如下:步骤要使用画布实现上述的图形效果,需要掌握画布的下列API的使用方法:2.1 直接绘制方法2.2 圆形绘制方法2.3 文字绘制方法同时,还要掌握在图形绘制时图形和文字的颜色配制、线条闭合路径设置和图形的填充及描绘的过程。过程3.1 在页面中添加一个指定宽高和边框的画布元素,并通过id号获取到它的上下文环境对象,保存在变量cxt中,用于后续代码的使用,代码如下:db.[collection_name].insert({“key”:“value”})向集合插入多条数据db.[collection_name].insertMany([{“key”:“value”},{“key”:“value”}…])删除集合中的数据Scene.1db.[coll
2021-11-12 00:07:07
385
原创 Linux系统:第九章:CentOS7安装,吹爆这份HTTP顶级教程

docker pull详细的参数使用可以通过docker pull --help来查看比如我们现在下载一个nginx的景象docker pull nginx默认会下载latest 的镜像,表示下载最新的镜像。也可以下载稳定版本的,或者下载指定版本的。docker pull nginx:stabledocker pull nginx:1.16查询镜像我们镜像下载下来了,我们怎么查看我们电脑上有哪些镜像呢?其实上面我已经用了docker image ls或者docker images
2021-11-10 21:46:29
107
原创 事务消息应用场景、实现原理与项目实战(附全部源码),SpringBoot集成Redis集群
其核心设计理念:应用程序开启一个数据库事务,进行数据库操作,并且在事务中发送一条PREPARE消息,PREPARE消息发送成功后通知应用程序记录本地事务状态,然后提交本地事务。RocketMQ在收到类型为PREPARE的消息时,首先备份消息的原主题与原消息消费队列,然后将消息存储在主题为RMQ_SYS_TRANS_HALF_TOPIC的消息队列中,故PREPARE的消息是不会被客户端消费的。Broker消息服务器开启一个定时任务处理RMQ_SYS_TRANS_HALF_TOPIC中的消息,
2021-11-10 21:44:56
499
原创 了解一下?Java中最大的数据结构:LinkedHashMap,linux编程基础课后答案
如果是默认的,则是按照添加顺序,即 accessOrder 默认是 false。源码实现如果看 LinkedHashMap 内部源码,会发现,内部确实维护了一个链表:/**双向链表的头,最久访问的*/transient LinkedHashMap.Entry<K,V> head;/**双向链表的尾,最新访问的*/transient LinkedHashMap.Entry<K,V> tail;而这个 LinkedH
2021-11-10 21:43:23
273
原创 为什么说“大公司的技术顽疾根本挽救不了”?,java大数据开发面试题
在很多开发者看来,提升敏捷性是解决技术难题的不二法则。但本文的作者作为一家有着一百多年历史的大公司的技术援助顾问却认为,由于历史遗留、文化隔阂等原因决定:在大公司,所谓的敏捷性开发其实并不是人们以为的管用。为什么他会这么说呢?一起来看看。以下为译文:在硅谷流传着很多油嘴滑舌、哗众取宠的肤浅言论,这些言论都是关于开发过程中保持敏捷的重要性的。关于引入敏捷技术的容易性,以及哪些问题可以通过敏捷技术解决,有太多的假设。在这篇文章中,我试图纠正其中的一些错误看法。在过去的20年里,我曾经是三家初创公司的技
2021-11-10 21:41:10
1704
原创 为什么你的insert就死锁了,springboot插件原理
分析兼容矩阵可以得出如下几个结论:INSERT操作之间不会有冲突。GAP,Next-Key会阻止Insert。GAP和Record,Next-Key不会冲突Record和Record、Next-Key之间相互冲突。已有的Insert锁不阻止任何准备加的锁。5. 自增锁(AUTO-INC Locks)AUTO-INC锁是一种特殊的表级锁,发生涉及AUTO_INCREMENT列的事务性插入操作时产生。官方解释如下3:An AUTO-INC lock is a special table-
2021-11-10 21:38:11
965
原创 为什么HashMap的加载因子一定是0,java教程视频网
我们知道,HashMap 是通过拉链法来解决哈希冲突的。为了减少哈希冲突发生的概率,当 HashMap 的数组长度达到一个临界值的时候,就会触发扩容(可以点击链接查看 HashMap 的扩容机制),扩容后会将之前小数组中的元素转移到大数组中,这是一个相当耗时的操作。这个临界值由什么来确定呢?临界值 = 初始容量 * 加载因子一开始,HashMap 的容量是 16:static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 1
2021-11-10 21:36:28
85
原创 为了进阿里拿Offer,逼得我两个月吃透了这些Java高级面试题解析,终于上岸
问题一:Java中的线程池是如何实现的?问题二:创建线程池的几个核心构造参数?问题三:线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?问题四:既然提到可以通过配置不同参数创建出不同的线程池,那么Java中默认实现好的线程池又 有哪些呢?请比较它们的异同 。问题五:如何在Java线程池中提交线程?1.4 Java 内存模型相关问题(六问)问题一:什么是Java的内存模型,Java中各个线程是怎么彼此看到对方的变量的?问题二:请谈谈volatil..
2021-11-10 21:34:10
177
原创 Redis集群生产环境源码安装,轻松拿到了阿里Java高级开发工程师的offer
vim /etc/security/limits.d/20-nproc.conf 修改* soft nproc 120002.在/etc/sysctl.conf中加入 net.core.somaxconn=511 ,然后执行 sysctl ‐p 生效,解决默认设 置为一个较低的值128的警告。overcommit_memory 设置为0,在低内存环境下的后台保存可能失败。在文件 /etc/sysctl.conf 中添 加 vm.
2021-11-09 13:38:13
106
原创 redis在微服务领域的贡献,阿里专家原创
dubbo.registry.address=redis://127.0.0.1:6379注册上来的数据是这样,类型是hash/dubbo/service/{service}/service/{category}如/dubbo/com.newboo.sample.api.DemoService/consumers/dubbo/com.newboo.sample.api.DemoService/providershash数据结构下保存的key是注册上来的url,value是过期时间127.0.0
2021-11-09 13:36:14
101
原创 Redis分布式锁的原理以及如何续期,rabbitmq延时队列原理
给大家解释一下,第一段if判断语句,就是用“exists myLock”命令判断一下,如果你要加锁的那个锁key不存在的话,你就进行加锁。如何加锁呢?很简单,用下面的命令:hset myLock8743c9c0-0795-4907-87fd-6c719a6b4586:1 1通过这个命令设置一个hash数据结构,这行命令执行后,会出现一个类似下面的数据结构:上述就代表“8743c9c0-0795-4907-87fd-6c719a6b4586:1”这个客户端对“myLock”这个锁key完成了加锁。
2021-11-09 13:34:31
291
原创 redis事务,linux高性能服务器编程百度云
3)入队错误回滚127.0.0.1:6379> MULTIOK127.0.0.1:6379> set key1 1QUEUED127.0.0.1:6379> HSET key2 1(error) ERR wrong number of arguments for ‘hset’ command127.0.0.1:6379> SADD key3 1QUEUED127.0.0.1:6379> EXEC(error) EXECABORT Transaction d
2021-11-09 13:32:06
158
原创 Redis-消息队列的三种方案(List、Streams,安利10个让你爽到爆的IDEA必备插件
我们都知道消息模型有两种点对点:Point-to-Point(P2P)发布订阅:Publish/Subscribe(Pub/Sub)List 实现方式其实就是点对点的模式,下边我们再看下 Redis 的发布订阅模式(消息多播),这才是“根正苗红”的 Redis MQ"发布/订阅"模式同样可以实现进程间的消息传递,其原理如下:"发布/订阅"模式包含两种角色,分别是发布者和订阅者。订阅者可以订阅一个或者多个频道(channel),而发布者可以向指定的频道(channel)发送消息,所有订阅此频道
2021-11-09 13:30:07
968
原创 redis+springboot生成图片验证码,mysql基础知识
//使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符public static final String VERIFY_CODES = “23456789ABCDEFGHJKLMNPQRSTUVWXYZ”;public static final String PHONE_VERIFY_CODES = “0123456789”;private static Random random = new Random();/**使用系统默认字
2021-11-09 13:27:54
152
原创 RabbitMQ的高级特性和消息补偿机制,java高级面试
死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),当消息成为Dead message (死信)后,可以被重新发送到另一个交换机,这个交换机就是DLX。#####消息成为死信的三种情况:1.队列消息长度到达限制;2.消费者拒接消费消息,并且不把消息重新放入原目标队列;3.原队列存在消息过期设置,消息到达超时时间未被消费;#####死信队列和死信交换机:死信队列和死信交换机与正常的队列和交换机一模一样, 没有任何区别 !!如何实现队列与死信交换机绑定 , 给队
2021-11-09 13:25:48
1714
原创 Openstack架构构建及详解(7)--Cinder组件,mybatis原理
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder’@‘localhost’ IDENTIFIED BY ‘CINDER_DBPASS’;Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder’@’%’ IDENTIFIED BY ‘CINDER_DBPASS’;Query OK,
2021-11-09 13:24:00
593
原创 OpenKruise v0,迄今为止讲解的最详细的一篇
这来自于云原生架构和过去传统基础基础设施的差异性。在传统的物理机、虚拟机时代,一台机器上往往会部署和运行多个应用的实例,并且机器和应用的生命周期是不同的;在这种情况下,应用实例的重启可能仅仅是一条 systemctl 或 supervisor 之类的指令,而无需将整个机器重启。然而,在容器与云原生模式下,应用的生命周期是和 Pod 容器绑定的;即常规情况下,一个容器只运行一个应用进程,一个 Pod 也只提供一个应用实例的服务。基于上述的限制,目前原生 Kubernetes 之下是没有 API 来为上层
2021-11-09 13:22:20
700
原创 NIO之缓冲区【基础内容】,java从入门到精通第四版答案
缓冲区Buffer=======================================================================1.缓冲区介绍一个Buffer对象是固定数量的数据的容器。其作用是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索。缓冲区可以写满和释放。对于每个非布尔原始数据类型都有一个缓冲区类。尽管缓冲区作用于它们存储的原始数据类型,但缓冲区十分倾向于处理字节。缓冲区的工作与通道紧密联系。通道是 I/O 传输发生时通过的入口,而缓冲区是这
2021-11-09 13:20:36
95
原创 Redis 集群设计方案,java虚拟机原理学会了有啥用
2.1、主从模式2.1.1、介绍主从模式是三种模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从数据库(slave)。其中主从复制有如下特点:主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库从数据库一般都是只读的,并且接收主数据库同步过来的数据一个master可以拥有多个slave,但是一个slave只能对应一个masterslave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来
2021-11-08 13:33:08
125
原创 RabbitMQ的安装,Spring中经典的9种设计模式,一定要记牢
主流的消息队列=====================================================================目前市场上主流的消息队列有4种:ActiveMQRabbitMQRocketMQKafkaRabbitMQ并发性能好,而且部署相对容易,是目前很多企业使用的消息队列。安装RabbitMQ===================================================================
2021-11-08 13:31:09
1146
原创 RabbitMQ不讲武德,发个消息也这么多花招,java入门必看书籍
===============================================================================RabbitMQ 中提供了3种发送消息的路由方式。直连 Direct 模式通过指定一个精确的绑定键来实现 Exchange(交换机) 和 Queue(消息队列) 之间的绑定,也就是说,当创建了一个直连类型的交换机时,生产者在发送消息时携带的路由键(routing key),必须与某个绑定键(binding key)完全匹配时,这条消息才会从交换
2021-11-08 13:29:26
278
原创 Oracle 常用SQL语句大全(精),java架构面试题spring原理
exp demo/demo@orcl buffer=1024 file=d:\back.dmp full=y**demo:**用户名、密码buffer: 缓存大小file: 具体的备份文件地址full: 是否导出全部文件ignore: 忽略错误,如果表已经存在,则也是覆盖将数据库中system用户与sys用户的表导出exp demo/demo@orcl file=d:\backup\1.dm
2021-11-08 13:27:01
97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人