自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zwj1030711290的CSDN

全力学习Java

  • 博客(612)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 redis集群手动迁移槽

网上的知识太杂,还是写一遍自己亲身操作的吧因为集群某个节点经常宕机,目前原因未知。所以掉线的节点再加入集群后,经常发现哈希槽分配错乱,甚至间隔,如下,741槽本应在连续不断的8002节点上,现在却跑到8001节点,手动调整吧目标是把741槽从8001节点转移到8002节点。第一步两种操作方式任选其一:在要迁入的节点上(8002)操作:cluster setslot 741 importing af40bb4ce7a4d623a812b716246c30df49b9db08(741目前

2021-05-27 09:49:55 1215

转载 redis cluster 强制kill某一个节点和shutdown某一个节点后修复过程

redis cluster 命令行,执行以下命令需登录cluster,是集群所独有的集群(cluster)CLUSTER INFO 打印集群的信息CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息节点(node)CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子CLUSTER FORGET <node_id> 从集群中移除 node.

2021-05-27 07:50:46 1108

转载 与第三方公司对接接口的权限校验

与第三方对接接口时的校验调用方法时需要传参:@ApiModelProperty("加密时间戳")public String timestamp;@ApiModelProperty("加密密文")public String cipher;调用方封装参数://被调用方法地址private static final String url = "";//DTO为参数对象 根据业务需求调整Map<String, String> cipher = CipherUtil.g

2021-05-27 05:08:26 698

转载 Swagger 3.0配置整合使用教程(三)

▌swagger介绍Swagger 是一套基于 OpenAPI 规范(OpenAPI Specification,OAS)构建的开源工具,后来成为了 Open API 标准的主要定义者。对于 Rest API 来说很重要的一部分内容就是文档,Swagger 为我们提供了一套通过代码和注解自动生成文档的方法,这一点对于保证API 文档的及时性将有很大的帮助。swagger2于17年停止维护,现在最新的版Boot本为17年发布的 Swagger3(Open Api3)。▌springfox介绍S.

2021-05-25 00:02:03 3018

转载 maven在pom中写dependency注入依赖包却无提示的解决方法

问题描述当你在pom.xml写需要的依赖包时,你发现不弹出提示,你或许直接去https://mvnrepository.com/找依赖的代码,但本地仓库有的情况下,不弹出提示写起来真的很难受,尤其是你记不住你本地仓库版本的时候问题解决打开IDEA,Settings-Build,Execution,Deployment----Bulid Tools----Maven----D:/tools/repository,点击图中的Update,等待下载完毕即可解决后的效果———————————

2021-05-20 10:38:23 1353 2

原创 Rest软件架构

Rest(Representational state Transfer)是一种web软件架构风格,是一种风格,不是标准,匹配或兼容这种架构风格的网络服务称为REST服务。rest服务简介有层次,通常基于Http,uri,xml和html这些现有的广泛流行的协议和标准。在rest中,资源是由uri来指定的,对资源的操作可以通过http协议提供的get,post,put,delete等方法实现。使用rest可以更高效的利用缓存来提高响应速度,同时rest中的通信会话状态由客户端来维护,这可以让不同的服务器处理

2021-05-14 08:41:04 501 2

原创 Session共享

正常情况下,HttpSession是通过Servlet容器创建并进行管理的,创建成功后保存在内存中,如果开发者需要对项目进行横向扩展搭建集群,那么可以利用一些硬件或软件工具来做负载均衡,此时,来自同一用户的Http请求就有可能被分发到不同的实例上去,如何保证各个实例之间Session的同步就成为一个必须解决的问题。SpringBoot提供了自动化的Session共享配置,它结合Redis可以非常方便地解决这个问题。原理就是把原本存储在不同服务器上的Session拿出来放在一个独立的服务器上,如图所示:.

2021-05-13 17:06:40 309 2

原创 mongodb第三篇:springboot集成mongodb(单机)

1.引入mongoDB包<dependency><groupid>org.springframework.boot</groupid><artifactid>spring-boot-starter-data-mongodb</artifactid></dependency> 2.配置yamlspring: data: mongodb: authentication-database: adm

2021-05-13 16:30:07 210

转载 异常:mysql使用like搜索下划线“_“,结果匹配了所有结果

MySQL> select * from t where x like ‘%_%’;返回全部的记录,不是想要的结果!为什么错误?因为在like语句中的下划线的含义是“任意一个字符”,类似“%”代表匹配任意多个字符的。4.正确的查询方法能想到的有如下两种方法。1)第一种方法使用escape转义mysql> select * from t where x like ‘%_%’ escape ‘’;返回包含有"_"的记录,正确escape的内容可以任意,只要保证前后

2021-05-13 11:39:51 1453

转载 mongodb第二篇

创建mongo配置文件vim conf/mongodb.conf内容如下:systemLog: quiet: false path: /usr/local/mongodb/logs/mongodb.log logAppend: false destination: fileprocessManagement: fork: true pidFilePath: /usr/local/mongodb/bin/mongodb.pidnet: bin.

2021-05-12 19:01:03 223

原创 centos安装mongodb

第一次接触mongodb,不足之处日后再补充,通过查阅得知,mongodb版本与平台OS有关,我的服务器是centos8.2,所以选择是这样的:最新稳定版mongodb4.4(第二位为偶数稳定版),红帽平台centos8.2,文件既可以选择rpm(server),也可以选择tgz(shell)压缩包形式,可以直接donwload,也可以点右侧copy link复制链接地址,然后wgethttps://fastdl.mongodb.org/linux/mongodb-shell-linux-aar..

2021-05-12 18:26:16 621 4

原创 springboot集成redis集群(Jedis and lettuce)

集成redis集群和单机redis区别主要在配置文件那里1.引入maven包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId><!-- <version>2.2.4.RELEAS

2021-05-12 10:23:07 1482

转载 redis从节点slave,fail,noaddr问题处理

一 问题描述查看集群状态,发现其中两个从节点异常(是fail状态)在问题节点上查看节点状态,发现它已脱离集群,且id都已发生了变化:即 id已经从76ba12f992228d906c368e0a5978013a210e9cd4 变成af40bb4ce7a4d623a812b716246c30df49b9db08/*若id没发生变化,直接重启下该从节点就能解决*/二 解决办法2.1 将该从节点剔出集群#在集群每个正常节点上执行cluster forget 故障从节点...

2021-05-01 12:11:57 1701

原创 九、Redis开发规范与性能优化

一、键值设计1. key名设计(1)【建议】: 可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:idtrade:order:1(2)【建议】:简洁性保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如:user:{uid}:friends:messages:{mid} 简化为 u:{uid}:fr:m:{mid}(3)【强制】:不要包含特殊字符反例:包含空格、换行、单双引号以及其他转义字符2. value设计

2021-04-29 22:39:11 239

转载 八、Redis集群水平扩容

Redis3.0以后的版本虽然有了集群功能,提供了比之前版本的哨兵模式更高的性能与可用性,但是集群的水平扩展却比较麻烦,今天就来带大家看看redis高可用集群如何做水平扩展。一、启动集群1、启动在之前搭建好的环境上执行如下命令启动执行在 192.168.157.6上执行cd /usr/local/redis/srcredis-server ../redis_cluster/7000/redis.confredis-server ../redis_cluster/7001/redis

2021-04-29 22:38:28 679

转载 redis集群报错:(error) CLUSTERDOWN The cluster is down

更换了电脑,把原来的电脑上的虚拟机复制到了新电脑上,启动虚拟机上的centos系统,然后启动redis集群(redis5版本),发现集群可以启动,redis进程也有,但是连接集群中的任意节点就报错,如下查看单个节点的集群配置信息:发现是因为原来的集群配置信息导致的错误,需要将每个redis实例下的dump.rdb 和nodes.conf文件删除,然后重新创建集群重新创建集群:首先启动6个redis实例2 .进入任意一个redis实例,执行集群创建命令:./r...

2021-04-29 00:56:29 3128

转载 七、Redis哨兵模式和高可用集群模式比较

一、哨兵模式在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没法支持很高的并发,且单个主节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率搭建可以参考:https://www.suibibk.com/t

2021-04-28 14:14:38 8208

转载 六、Redis Java连接示例(连接池、哨兵、springboot、集群)

下面介绍用Java连接redis的一些例子,涉及管道、lua、哨兵连接、springboot连接的例子。一、Java连接池连接(管道,lua)加入如下依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency&

2021-04-28 14:13:39 1444

转载 五、Redis哨兵高可用架构

sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过sentinel代理访问redis的主节点,当redis的主节点发生变化,哨兵会第一时间感知到,并且将新的redis主节点通知给client端(这里面redis的client端一般都实现了订阅功能,订阅sentinel发布的节点变动消息)一、redis哨兵架构搭建步骤1、复制一份sentinel.c

2021-04-28 14:06:20 116

转载 四、Redis主从架构

一、Redis主从工作原理如果你为master配置了一个slave,不管这个slave是否是第一次连接上Master,它都会发送一个SYNC命令(redis2.8版本之前的命令)给master请求复制数据。master收到SYNC命令后,会在后台进行数据持久化通过bgsave生成最新的rdb快照文件,持久化期间,master会继续接收客户端的请求,它会把这些可能修改数据集的请求缓存在内存中。当持久化进行完毕以后,master会把这份rdb文件数据集发送给slave,slave会把接收到的数据进行持久

2021-04-28 14:05:29 116

转载 三、Redis持久化机制

redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。一、RDB(Redis DataBase)在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次数据集。比如说, 以下设置会

2021-04-28 14:04:47 130

转载 二、Redis的单线程和高性能

一、Redis 单线程为什么还能这么快?因为它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。正因为 Redis 是单线程,所以要小心使用 Redis 指令,对于那些耗时的指令(比如keys),一定要谨慎使用,一不小心就可能会导致 Redis 卡顿。二、Redis 单线程如何处理那么多的并发客户端连接?Redis的IO多路复用:redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处

2021-04-28 14:03:12 89

转载 一、Redis的数据结构以及相关应用场景

Redis有如下五种最常使用的数据结构:字符串string、哈希hash、列表list、集合set、有序集合一、String结构1、字符串常用操作SET key value //存入字符串键值对 MSET key value [key value ...] //批量存储字符串键值对 SETNX key value //存入一个不存在的字符串键值对 GET key //获取一个字符串键值 MGET key [key ...] //批量获取字符串键值 DEL key [key ..

2021-04-28 14:02:02 174

转载 一文读懂Redis的四种模式,单机、主从、哨兵、集群

入职那天下午,组长给我丢了几个文档,让我看下这个这些工程的缓存系统问题,让我把redis升级为哨兵模式。接到任务的我,内心是懵逼的。第一、不知道都是些什么类型的服务在用redis。第二、不知道以什么姿势在用redis。第三、如果redis挂了会不会影响用户。第四、我完全没用过redis。虽说没干过,但咋也不怂。毕竟要是天天干的都是干过的工作,那就是有问题了,很快就被优化掉了。看来社招入职和校招还是不一样的,校招进来都会有些入职培训或者新人班课程。通过这些形式的教育,第一、

2021-04-28 11:31:45 758

转载 redis面试

作者:敖丙链接:https://www.zhihu.com/question/354518943/answer/888891865小伙子你好,之前问过了你基础知识以及一些缓存的常见几个大问题了,那你能跟我聊聊为啥Redis那么快么?哦,帅气迷人的面试官您好,我们可以先看一下关系型数据库跟Redis本质上的区别。Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库,由C语言编写,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。 完全基于内存,绝大部分.

2021-04-28 10:33:55 170

转载 redis5.0集群搭建

redis5.0开始,不用ruby就能搭建集群,方便太多。从零开始吧,我是先学习了单机版redis,分别在centos8.0和ubuntu20.04开了一个单机版,测试都没问题。等到集群时发现哪哪都不顺,所以记录下来。回顾: 1.centos下yum install -y gcc #依赖gcc,所以必须安装wget http://download.redis.io/releases/redis-5.0.5.tar.gz ...

2021-04-28 02:45:07 587

转载 [ERR] Node 192.168.1.200:7001 is not empty. Either the nodealready knows other nodes (check with CL

关于启动redis集群时:[ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some的问题解决办法:1)将每个节点下aof、rdb、nodes.conf本地备份文件删除;2)172.168.63.201:7001> flushdb #清空当前数据库(可省略)3)之后再执行脚本,成功..

2021-04-27 21:38:07 1403

转载 Multiple Endpoints may not be deployed to the same path [] : existing endpoint...

一.问题回顾在springboot中添加了websocket功能在内置的tomcat中可以启动该功能,但是打包成war包之后在外部tomcat中启动就报如下的错误javax.websocket.DeploymentException: Multiple Endpoints may not be deployed to the path二.刨根问底关于异常原因,可以参考这篇博文:https://stackoverflow.com/questions/31178799/websocket-

2021-04-27 09:22:01 1933

转载 互联网公司常用MySQL分库分表方案

2、水平分表3、垂直分库4、垂直分表三、分库分表工具注:工具的利弊,请自行调研,官网和社区优先。四、分库分表步骤根据容量(当前容量和增长量)评估分库或分表个数 -> 选key(均匀)-> 分表规则(hash或range等)-> 执行(一般双写)-> 扩容问题(尽量减少数据的移动)。五、分库分表问题1、非partition key的查询问题基于水平分库分表,拆分策略为常用的hash法。...

2021-04-25 18:05:48 135

转载 七.deepin备份还原

鉴于deepin的不稳定性,备份还原功能需要多关注一下。deepin官方提供了深度live系统,集成有系统修复和备份还原的功能,这个系统有点类似windows下的PE工具。下载深度live系统:https://www.deepin.org/zh/download/制作深度live启动盘利用deepin自带的启动盘制作工具,把刚刚下载的深度live系统写入u盘,图形界面根据提示下一步下一步就好了,这里省略制作过程。从u盘启动深度live系统重启电脑进入u盘里的live系统(可设置b

2021-04-25 10:04:00 3516 1

转载 六.win10+deepin双系统遇到的小问题(累加)

1.双系统导致Win10系统时间出错原因分析:① 每次从Ubuntu切换会Win10,Win10的时间都会出错,并且都是与实际时间相差8小时(这是由于Win10设置的是中国时区)。② Win10使用rtc时间,Ubuntu默认使用utc时间。③ 从bios读出来的时间,Win10认为该时间就是实际时间,Ubuntu认为该时间加上8小时后的才是实际时间。④ timedatectl在Ubuntu系统每次启动时都会从NTP服务器同步时间。所以即使切换到Win10更改时间后,当再次从Ubuntu切换到

2021-04-25 09:06:39 299

原创 五.deepin常用快捷键

2021-04-25 01:13:05 1098

转载 四.deepin相关命令

1.配置环境变量sudo vi /etc/profile #编辑环境变量,i是编辑,:q!取消,:wq保存并退出source /etc/profile #使配置生效2.修改主机名sudo vi /etc/hostname #主机名sudo vi /etc/hosts #网络映射名3.更新命令sudo apt-get update #更新缓存sudo apt-get upgrade #更新系统的软件包sudo apt-get dist-upgrad

2021-04-25 01:07:13 1652

转载 三.Deepin(Ubuntu)安装rpm软件包 &&& 软件服务器自启动

1.首先安装alien和fakeroot这两个软件,alien可以将rpm转换为deb包。 在终端中输入命令 sudo apt-get install alien fakeroot 2.使用alien将rpm包转为deb包: fakeroot alien javase*.rpm 3.转换成功,可以即刻使用这个命令来安装: sudo dpkg -i javase*.deb如果安装rpm包,照下面做...

2021-04-25 00:30:43 625

原创 二.deepin安装软件(1)

1.微信:因为是wine版,所以选择了应用商店 一键安装。2.QQ:具体步骤可参考linuxQQ安装步骤GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工具包。它遵循 LGPL 许可证,所以你可以用它来开发开源软件、自由软件,甚至是封闭源代码的商业软件,而不用花费任何钱来购买许可证和使用权。 GTK 被称为 GIMP 工具包是因为最初写它是用来开发 GIMP (GNU 图像处理程序) 的,但是它现在已经被用于很多软件项目了,包括 GNOME (GNU 网络对象模型环境)。GTK

2021-04-25 00:27:08 591 6

原创 一.安装deepin

笔记本是联想拯救者y7000,原配:cpu i5-8300h ,三星内存8g,固态128g+2T机械,独显是nvidia--gtx1050ti。后加装16G同品牌同频率内存组24G内存,固态128卸掉换512,伴随着几次win10升级,电脑待机经常无法唤醒,网上的办法除了重做系统外,其他都尝试过都未能解决。到底是硬件兼容性问题还算win10升级的锅? 加上一直以来对linux的好奇,打算装个deepin,win10+deepin组合为双系统,经过网上冲浪,发现对于我这种双硬盘+双显卡(集显+英伟达独显)真.

2021-04-24 17:52:47 349

原创 Linux CentOS 校正系统时间

Linux CentOS 校正系统时间yum -y install ntpntpdate 1.cn.pool.ntp.org # 根据网络时间校正tzselect # 选择时区:5Asia->9 China->1->Beijing Time ->1 yesecho 'TZ='Asia/Shanghai'; export TZ' > ~/.profile # 时区信息写入配置文件hwclock -w # 软件时间同步至硬件时间date # 查看当前时间.

2021-04-13 15:21:19 216

原创 ubuntu基础一

Ubuntu安装ifconfig工具apt-get install net-tools安装vimsudo apt install vim下载gccsudo apt-get build-dep gccubuntu下使用apt-get install安装的软件的相关位置有时候需要配置ubuntu安装的软件,一般安装软件都是使用apt-get install。那么安装完后,软件的安装目录在哪里呢,可执行文件又放在哪里呢。A、下载的软件的存放位置:/var/cache/apt/ar.

2021-04-09 01:08:37 173

转载 ubuntu命令安装redis并设置自启动

由于没时间系统学习,只能是用到什么记录什么,有点杂乱安装redis有两种方式一.apt安装本文Ubuntu环境(20.04)安装redissudo apt-get install -y redis-server设置密码sudo vim /etc/redis/redis/redis.conf修改配置文件里的requirepass,把注释关掉,然后后面改为你想设置的密码,然后再重新启动redis即可service redis restart再进行redis操作的时候就会提示输入密码

2021-04-09 01:00:17 4480 4

原创 ubuntu20.04更改为国内软件源

一.图形界面操作 - 适用于 desktop 版本在桌面右上角点击打开菜单,点击设置选项。在设置选项右侧下拉找到“关于”,点击 Software Updates。在软件和更新界面里可以看到“下载自”,我们可以进行修改。推荐选择mirros.aliyun.com或者mirrors.tuna.tsinghua.edu.cn,你也可以点击选择最佳服务器,测试连接最快的软件源(测试时间较长)。最后,退出软件与更新界面时,会提示更新软件列表信息,点击重新载入即可。终端...

2021-04-08 14:31:01 9281 1

新版本eclipse可用的打包工具 fat-jar

eclipse添加这个插件,便于打包程序运行

2017-07-26

小诊所诊治病历信息管理系统

小诊所管理系统,纯jsp+servlet开发,数据库为mysql

2017-05-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除