- 博客(135)
- 资源 (2)
- 收藏
- 关注
原创 springboot整合redis+lua实现getdel操作保证原子性
根据上面的逻辑加了测试, 在判断成功后等待5秒后执行删除操作。同时开启另外一个线程去修改这个key的值, 发现修改的线程一直阻塞。直到等待的线程5秒结束后且完成删除操作后,修改的线程才会执行。注意: 如果脚本中涉及多个key的操作并redis部署的是cluster模式时, 需要额外确认多个key都在一个slot中。Redis会将整个Lua脚本作为一个原子操作执行,这意味着脚本中的多个命令要么全部执行成功,要么全部失败。Redis执行Lua脚本时,它会自动锁定相关的键,以防止其他客户端对这些键进行并发修改。
2023-11-02 14:12:07
823
原创 docker安装mongodb4.4.0
搜索镜像 docker search mongo 拉取镜像 docker pull mongo:4.4.0 创建容器/home/agent/data/mongodb 为mongodb数据目录需提前创建 auth表示连接mongodb需要授权 docker run -itd --name mongo -v /home/agent/data/mongodb:/data/db -p 27017:27017 mongo:4.4.0 --auth 启动成功...
2022-02-17 10:37:29
2649
2
原创 41--go语言学习之配置文件
依赖 go get github.com/spf13/viper 代码 package mainimport ( "fmt" "os" "github.com/spf13/viper")func main() { InitConfig()}// 读取yml文件func InitConfig() { work, _ := os.Getwd() // 获取目录路径 viper.SetConfigName(...
2021-10-16 22:21:21
507
原创 39--go语言学习之数据库操作orm学习
xorm学习 文档GitHub - go-xorm/xorm: Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3,mssql,oracle, Moved to https://gitea.com/xorm/xorm 依赖 go get github.com/go-xorm/xorm 代码 package mainimport ( "fmt" "time" _ "github.com...
2021-10-15 22:10:10
277
原创 38--go语言学习之操作mysql
文档https://github.com/go-sql-driver/mysql依赖 go get -u github.com/go-sql-driver/mysql 代码 package mainimport ( sql2 "database/sql" "fmt" "net/http" "github.com/gin-gonic/gin" _ "github.com/go-sql-driver/mysql" // 注意运行时须加载依赖 否则报错)var ...
2021-10-12 23:30:18
170
原创 37--go语言学习之日志配置logrus
基本使用下载 go get github.com/sirupsen/logrus 文档:GitHub - sirupsen/logrus: Structured, pluggable logging for Go. 代码 package mainimport ( "fmt" "net/http" "os" "github.com/gin-gonic/gin" "github.com/sirupsen/logrus")// 创建logvar log = logr..
2021-10-11 23:00:23
1090
原创 35--go语言学习之session操作
文档GitHub - gin-contrib/sessions: Gin middleware for session management下载 go get github.com/gin-contrib/sessions 代码 package mainimport ( "encoding/gob" "net/http" "github.com/gin-contrib/sessions" "github.com/gin-contrib/sessions/cookie"...
2021-10-10 21:18:30
630
原创 34--go语言学习之swagger
dd下载依赖 go get github.com/swaggo/swag/cmd/swaggo get github.com/swaggo/gin-swaggergo get github.com/swaggo/files 创建文件 main.go注意 package mainimport ( "fmt" "net/http" _ "go_work/gin/swagger/docs" // swag init 生成的docs "github.com/gin-goni.
2021-10-09 22:57:02
448
1
原创 33--go语言学习之参数校验
参数校验下载依赖 go get github.com/satori/go.uuidgo get github.com/go-playground/validator 代码 package mainimport ( "fmt" "net/http" "unicode/utf8" uuid "github.com/satori/go.uuid" "github.com/gin-gonic/gin" "github.com/go-playground/val...
2021-09-28 23:45:56
662
原创 28--go语言学习之gin登陆认证处理
package mainimport ( "net/http" "github.com/gin-gonic/gin")func main() { engine := gin.Default() engine.Use(loginMiddleware()) engine.GET("info", func(c *gin.Context) { // 获取登陆用户名 name := c.MustGet(gin.AuthUserKey).(string) c.JSON(http.St.
2021-09-26 22:50:22
879
原创 26--go语言学习之文件处理
涉及文件的下载 文件单个上传和批量上传package mainimport ( "net/http" "github.com/gin-gonic/gin")func main() { engine := gin.Default() engine.GET("down", downFile) engine.POST("upload", uploadFile) engine.POST("uploadBatch", uploadBatchFile) engine.Run(":809.
2021-09-25 22:35:09
139
原创 25--go语言学习之多类型数据返回
实例1 涉及客户端json、html、xml、yaml数据返回格式package mainimport ( "net/http" "github.com/gin-gonic/gin")func main() { engine := gin.Default() // json输出 engine.GET("json", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "html": "<br>this is
2021-09-25 18:30:10
181
原创 java本地环境操作hadoop
配置本地项目环境 在linux安装hadoop 安装参考:https://blog.youkuaiyun.com/xiaobo5264063/article/details/119630117 这里安装的时3台, 对应的host为 192.168.2.112node112.cn 192.168.2.113node113.cn 192.168.2.114node114.cn 配置window的hosts 在C:\Windows\System32\drivers\etc\host...
2021-09-11 13:38:53
507
1
原创 服务器之间相互免密钥
背景 如果有2台服务器.109、110 在109服务器上使用ssh 192.168.2.110登陆110服务器时, 每次登陆都需要密码。 解决方案创建密钥 // 在109服务器创建密钥ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 密要地址: 发送公钥 // 将109服务器的公钥发送到110服务器上 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.2.110###需要输...
2021-08-14 23:33:37
739
原创 2020综合面试
设计模式责任链 将多个执行步骤连接起来形成的一条链,这个对象处理完,就会交给下一个对象去处理。网关设置IP白名单。 装饰 mybatis使用redis实现二级缓存,先判断二级(redis)是否有数据,在判断一级(jvm)。 模板+工厂: 定义抽象模板,在联合登录中设置联合登录请求处理获取openId、通过id获取用户、通过userId更新openId。 策略模式: 主要解决多重if判断问题,前端获取登录方式,通过登录获取从数据库获取对应的处理类class, 如果为空,表示该方式...
2021-07-22 09:39:34
200
1
原创 elk日志收集
安装elasticsearch上传安装包 解压 tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gztar -zxvf kibana-7.9.3-linux-x86_64.tar.gztar -zxvf logstash-7.9.3.tar.gztar -zxvf filebeat-7.9.3-linux-x86_64.tar.gztar -zxvf metricbeat-7.9.3-linux-x86_64.tar....
2021-07-05 10:31:23
267
原创 minio
minio服务端 准备目录 // /data为minio上传文件的存储目录mkdir -p /data/minio 下载 mkdir -p /usr/local/minio/servercd /usr/local/minio/serverwget https://dl.minio.io/server/minio/release/linux-amd64/minio 下载到/usr/local/minio/server目录下 创建启动脚本 cd /usr/loc...
2021-05-06 10:00:33
574
原创 elasticsearch基础大全
elasticsearch介绍 介绍 Elasticsearch是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。 Elasticsearch 还是一个分布式文档数据库,每个字段数据都是可以被检索。它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。 Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成。 官网:https://www.elastic.c...
2021-04-20 16:48:49
270
原创 jsoncole得远程监控weblogic以及gc日志数据
配置jsoncole远程连接 JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.port=9000"JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.authenticate=false"JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.ssl=false" vi setDom.
2020-09-23 14:32:11
403
原创 webscoket的介绍--转载
https://blog.youkuaiyun.com/m0_37542889/article/details/83750665
2020-09-14 18:18:18
97
原创 责任链模式
什么是责任链模式是一种对象的行为模式,在责任链模式里,很多对象由每个对其下家的引用而连接起来形成的一条链,请求在这个链上传递,直到链上的某一个对象决定处理此请求,发出这个请求的客户端并不知道链上的哪一个对象最终会处理这个请求; 有多个对象对一个任务进行处理。他们形成一个链,这个对象处理完,就会交给下一个对象去处理。 角色 抽象处理角色(Handler),定义处理请求的接口 抽象处理者角...
2020-07-22 20:35:08
142
转载 vue创建项目找不到python2.7
https://blog.youkuaiyun.com/qq_42886417/article/details/103123659
2020-06-27 22:32:42
1596
原创 cdn基础和实战
web前端优化方案 网站的动静分离 浏览器的缓存技术 js、css压缩技术 CDN内容分发 前后端分离技术: 异步话 什么是cdn CDN加速意思就是在用户和我们的服务器之间加缓存机制,动态获取IP地址根据地理位置,让用户到最近的服务器访问。 减少服务器的访问压力,让用户在就近的服务器访问。 c d e f g b b b b b h h h ...
2020-06-23 15:41:06
223
原创 细说linux学习--日志管理以及备份还原
日志服务 在CentOS 6.x中日志服务已经由rsyslogd取 代了原先的syslogd服务。rsyslogd日志服 务更加先进,功能更多。但是不论该服务 的使用,还是日志文件的格式其实都是和 syslogd服务相兼容的,所以学习起来基本 和syslogd服务一致。 常见日志的作用 ...
2020-06-07 13:47:56
230
原创 细说linux学习--服务器系统查看以及定时任务
监控系统资源 格式:vmstat [刷新延时 刷新次数] [root@localhost ~]# vmstat 1 3procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 8 338540 ...
2020-06-07 07:16:06
2171
原创 细说linux学习--文件系统
分区类型 主分区:总共最多只能分四个 扩展分区:只能有一个,也算作主分区的一种 ,也就是说主分区加扩展分区最多有四个。但 是扩展分区不能存储数据和格 式化,必须再划 分成逻辑分区才能使用。 逻辑分区:逻辑分区是在扩展分区中划分的, 如果是IDE硬盘,Linux最多支持59个逻辑分区 ,如果是SCSI硬盘Linux最 多支持11个逻辑分区 文件系统查看命令 df 格式:df...
2020-05-31 22:00:39
344
原创 细说linux学习---ASL权限、其他特殊权限
场景如何用户root创建了一个/project目录,同时给这个目录设置的权限是: 所有者(rwx)、组权限(rwx)、其他人(---)。 此时若不改变原本的权限同时,想给st用户设置r-x权限, 如何设置???? 设定ACL权限 格式:setfacl 选项 文件/目录名 -m:设定ACL权限 -x: 删除指定的ACL权限 -b: 删除所有的ACL权限 -d: 设定默认ACL权限。 -k: 删除默认ACL权...
2020-05-30 22:57:45
616
原创 gateway整合秒杀服务实现单个手机号限流
秒杀服务创建秒杀服务项目 server: port: 6060spring: application: name: pitch-spike.....................省略 提供秒杀服务接口 // 用户根据手机号和秒杀商品id进去抢购 @Override public MessageCode<JSONObject> spike(String userPhone, Long seckillId) { ...
2020-05-13 23:43:40
427
原创 基于docker安装ElasticSearch
安装下载ES镜像 // 这里默认最新版本docker pull elasticsearch 运行ES docker run -it --name elasticsearch -d -p 9200:9200 -p 9300:9300 -p 5601:5601 elasticsearch 注意:-p 5601:5601 是kibana的端口地址 (我这里kibana的cont...
2020-05-03 22:06:33
1412
原创 swagger注解说明
Swagger配置说明@Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置"@ApiOperation:用在请求的方法上,说明方法的用途、作用 value="说明方法的用途、作用" notes="方法的备注说明"@ApiImplicitPara...
2020-04-11 13:29:43
162
原创 zipkin分布式服务追踪与调用链系统
产生的背景 服务追踪组件, 在微服务架构中,众多的微服务之间互相调用,如何清晰地记录服务的调用链路是一个需要解决的问题. 同时,由于各种原因,跨进程的服务调用失败时,运维人员希望能够通过查看日志和查看服务之间的调用关系来定位问题,而Spring cloud sleuth组件正是为了解决微服务跟踪的组件. 该组件最好和zipkin结合使用, zipkin是图形化的. zipkin默...
2020-04-08 19:33:02
493
原创 基于canal框架解决mysql与redis一致性的问题
应用场景 在项目中通常使用redis作为缓存数据库,将数据库查询的数据缓存到redis中,从而减轻数据的访问的压力。如果数据库的数据发生了修改,这样就产生了数据的不一致性问题 解决方案: 删除redis的缓存,重新从数据库获取。 使用Alibaba的canal框架来解决 canal介绍 canal主要...
2020-04-07 22:30:10
1921
1
原创 SpringCloudAlibaba基础学习--SpringCloud Sentinel服务保护
服务保护的基本概念 服务降级 在高并发情况下,防止用户一直等待,使用服务降级方式,直接走本地falback的方法,返回一个友好的提示。 服务限流 服务限流就是对接口访问进行限制,常用服务限流算法令牌桶、漏桶。计数器也可以进行粗暴限流实现。 服务熔断 熔断机制目的为了保护服务,在高并发的情况下,如果请求达到一定极限(可以...
2020-03-31 22:19:25
254
原创 SpringCloudAlibaba基础学习--Gateway网关
什么是网关 网关是整个微服务API请求的入口,负责拦截所有请求,分发到服务上去。可以实现日志拦截、权限控制、解决跨域问题、限流、熔断、负载均衡、黑名单与白名单拦截、授权等 过滤器与网关的区别 网关是拦截所有服务器请求进行控制 过滤器拦截某单个服务器请求进行控制 Zuul与Gateway有那些区别 Zuul网关属于netfix公司开源的产品属于...
2020-03-30 22:13:50
1192
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人