- 博客(255)
- 资源 (9)
- 收藏
- 关注
原创 【运维】Linux 服务器定时重启的实现方式
这里通过 ExecStart 指定了要执行的脚本文件路径,Type 设置为 oneshot 表示执行一次就停止,不会一直执行。其中,0 3 * * * 表示每天的凌晨 3 点执行一次,root 表示使用 root 用户执行命令,/sbin/reboot 表示执行系统重启命令。这里的 /usr/local/bin 是一个常用的存放自定义脚本的目录,如果需要可以根据实际情况进行修改。这样,系统就会按照设定的时间周期自动执行 /usr/local/bin/reboot.sh 脚。
2023-04-06 11:41:58
3877
原创 【运维】centos查看连接的会话和所有的账号
getent passwd:该命令将列出系统中所有用户账号的详细信息,与第一个命令类似,但是能够显示来自其他命名空间的用户账号,例如LDAP或NIS账号等。cat /etc/passwd:该命令将显示系统中所有用户账号的详细信息,包括用户名、用户ID、组ID、用户家目录路径和默认shell等。可以使用whoami命令来查询CentOS 8当前用户的会话信息,该命令将显示当前登录用户的用户名。该命令将显示登录用户的用户名、终端设备、登录时间以及运行的进程等详细信息。
2023-04-06 11:33:25
2134
原创 【vue】使用 el-upload+axis实现手动多文件上传的代码实现
需要注意的是,在上传文件之前,我们必须先将文件添加到FormData对象中,这里使用了this.fileList[i].raw来获取每个要上传的文件的原始数据。另外,由于我们将自动上传(auto-upload)属性设置为false,因此需要通过handleUploadChange()方法将选择的文件列表保存到组件状态中(fileList)。在uploadFiles()方法中,我们首先创建了一个FormData对象,并将所有要上传的文件添加到该对象中。
2023-04-06 11:30:03
1110
原创 【Redis】数据结构 - String
Hash 数据结构底层使用了哈希表,等等。需要注意的是,在使用 String 数据结构时,应该根据数据的实际情况选择合适的编码方式,以减小内存占用,并注意过期时间的设置,避免 Redis 内存溢出。需要注意的是,在使用 Redis 的 String 数据结构时,应该遵循 Redis 的规范和约定,使用合适的编码方式和操作方法,并注意数据类型转换和内存管理等问题。需要注意的是,在使用 Redis 的其他数据结构时也要遵循上述建议,并根据实际情况选择合适的数据结构和操作方式,以实现高效、安全和可靠的系统。
2023-04-05 00:10:44
817
原创 【Redis】数据结构 - Set
Set 数据结构中元素的数量不受限制,但是由于 Redis 在内部使用哈希表实现 Set 数据结构,因此当 Set 中元素的数量较大时,哈希表的内存开销也会相应增加。注意 Set 中元素的大小:由于 Redis 在内部使用哈希表实现 Set 数据结构,因此当 Set 中元素的大小较大时,哈希表的内存开销也会相应增加。需要注意的是,在使用 Redis 的 Set 数据结构时,应该遵循 Redis 的规范和约定,使用合适的命令和操作方法,并注意数据类型转换和内存管理等问题。
2023-04-05 00:10:26
1169
原创 【Redis】发布/订阅
在上面的代码中,发布者使用conn.Do()执行PUBLISH命令向指定频道发布消息,而订阅者则使用redis.PubSubConn类型创建一个PubSubConn对象,并通过Subscribe()方法订阅一个或多个频道。在上面的代码中,发布者使用jedis.publish()向指定频道发布消息,而订阅者则创建一个继承自JedisPubSub类的子类,并重写其onMessage()方法用于处理接收到的消息。当其他客户端向该频道发送消息时,Redis会遍历订阅列表,并将消息发送给所有已订阅该频道的客户端。
2023-04-05 00:09:21
1334
原创 【Redis】事务和实现原理
在上面的代码中,我们使用Redisson创建了一个事务,并在事务中执行了一系列操作(设置键值对、添加集合元素等)。可以看到,在Redisson客户端中,事务的使用方式与传统的Java事务非常类似。Redisson事务是基于Redis的单线程模型实现的,因此事务中的操作不会被其他客户端的操作干扰。在Redisson客户端中,事务的错误处理是自动的:如果事务中任何一个操作失败,整个事务将会被回滚。Redisson事务的性能比较高,但是需要注意设置事务超时时间,以避免事务长时间阻塞导致性能下降。
2023-04-05 00:08:41
534
原创 【Redis】数据结构 - ZSet
具体来说,在使用哈希表实现 Sorted Set 数据结构时,每个元素都对应一个键值对,其中 key 表示元素的值,value 表示元素的分值。注意 Sorted Set 中元素的大小:由于 Redis 在内部使用跳跃表(Skip List)实现 Sorted Set 数据结构,因此当 Sorted Set 中元素的大小较大时,跳跃表的内存开销也会相应增加。需要注意的是,在使用 Redis 的 Sorted Set 数据结构时,应根据实际情况选择合适的命令和操作方法,并注意数据类型转换和内存管理等问题。
2023-04-05 00:07:38
1128
原创 【Redis】数据结构 - List
其中,lpush 和 rpush 命令用于在 List 的左侧和右侧插入一个或多个元素,linsert 命令用于在指定元素前或后插入一个新元素,lpop 和 rpop 命令分别用于删除 List 的左侧和右侧的元素。需要注意的是,在使用 Redis 的 List 数据结构时,应根据实际情况选择合适的命令和操作方法,并注意数据类型转换和内存管理等问题。需要注意的是,在使用 Redis 的 List 数据结构时,应根据实际情况选择合适的命令和操作方法,并注意数据类型转换和内存管理等问题。
2023-04-05 00:07:17
1259
原创 【Redis】数据结构 - Hash
需要注意的是,在使用 Redis 的 Hash 数据结构时,应根据实际情况选择合适的命令和操作方法,并注意数据类型转换和内存管理等问题。需要注意的是,在使用 Redis 的 Hash 数据结构时,应根据实际情况选择合适的命令和操作方法,并注意数据类型转换和内存管理等问题。需要注意的是,插入键值对时,如果键已经存在,则会覆盖原有的值。注意字段名的选择:在选择 Hash 数据结构中的字段名时,应避免使用特殊字符和太长的名称,尽量使用简短、易于理解的名称,以减少内存占用和提高系统可维护性。
2023-04-04 13:23:17
1890
原创 【Redis】数据结构 - HyperLogLog
使用场景Redis 的 HyperLogLog 数据结构适用于需要进行基数(cardinality)估计的场景,即需要统计某个集合中不同元素的数量。HyperLogLog 是一种概率性算法,可以在极小的内存空间下完成基数估计。因此,它广泛应用于大规模数据集的基数估计和去重等场景,如:统计网站独立 IP 数量:使用 HyperLogLog 可以快速地统计网站独立 IP 的数量,而无需对所有 IP 进行去重和存储,从而节省大量内存空间。统计在线用户数量:使用 HyperLogLog 可以在极短的时间内对
2023-04-04 13:23:00
767
原创 【Redis】数据恢复
在使用 AOF 持久化方式时,可能会出现最后一部分写入数据丢失的情况,因此在进行数据恢复时,应该仔细检查最后一条写命令的执行情况,以确保数据的完整性。如果 RDB 文件损坏或不完整,可以尝试使用 Redis 自带的 redis-check-rdb 工具来检查文件的有效性,并尝试修复文件中的错误。如果 AOF 文件损坏或不完整,可以尝试使用 Redis 自带的 redis-check-aof 工具来检查文件的有效性,并尝试修复文件中的错误。如果 AOF 文件无法恢复,则可以尝试从备份文件中恢复数据。
2023-04-04 13:22:04
2588
原创 【Redis】持久化
RDB(Redis Database) 持久化方式:将 Redis 在内存中的数据快照以二进制形式保存到磁盘上,可通过配置不同的保存策略来实现定时备份或者手动触发备份。需要注意的是,当 Redis 同时开启 RDB 和 AOF 持久化时,一旦 Redis 重启,它将优先加载 AOF 文件,因为 AOF 文件包含的是更加完整和准确的数据。如果不做持久化处理,一旦服务器宕机,所有的数据就会丢失,无法恢复,这对于生产环境而言是不能接受的。Redis 在执行写命令时,将相应的操作追加到 AOF 文件的末尾。
2023-04-04 13:21:42
772
原创 【Redis】部署架构 - 集群模式
该脚本假设 Redis 集群由 6 个节点组成,起始端口号为 7000,Redis 配置文件和数据目录分别位于 /etc/redis 和 /var/lib/redis 目录下。因此,在添加或删除节点时,可能会导致部分数据从一个节点迁移到另一个节点,这可能会影响集群的性能。在 Redis 集群中,单个键值对可能会被拆分到不同的节点上,这可能会导致跨节点事务的实现变得困难。在某些情况下,当节点增加或删除时,可能需要重新分片,这可能会导致性能问题和操作复杂性增加。可以实现水平扩展,增加集群的读写吞吐量。
2023-04-04 13:20:12
163
原创 【Redis】淘汰策略
Redis 的淘汰策略是指在 Redis 内存使用达到上限时,选择哪些数据被删除或清除的策略。volatile-ttl:在所有可过期的键中,根据键值对象的 TTL(time-to-live)属性来删除。volatile-lru:在所有可过期的键中,从最近最少使用(LRU)的键开始删除。allkeys-lru:在所有键中,从最近最少使用(LRU)的键开始删除。volatile-random:在所有可过期的键中,随机删除一些键。allkeys-random:在所有键中,随机删除一些键。
2023-04-04 13:19:53
679
原创 【Redis】部署架构 - 哨兵模式
该脚本创建一个 Redis 主节点和多个 Redis 哨兵节点,其中 Redis 主节点的端口号为 6379,Redis 哨兵节点的起始端口号为 26379。其中,sentinel monitor mymaster 127.0.0.1 ${REDIS_PORT} ${SENTINEL_QUORUM} 参数表示监控名为 mymaster 的主节点,并且至少需要 SENTINEL_QUORUM 个 Sentinel 节点同意才能执行故障转移操作。可以增加系统的高可用性,当主节点发生故障时可以自动进行主从切换。
2023-04-04 13:18:24
171
原创 【Redis】部署脚本 - 主从模式
以下是一个简单的Redis主从模式部署脚本,可以用于快速安装和配置Redis主从服务:部署Redis主节点部署Redis从节点。
2023-04-04 10:54:52
284
原创 【Redis】部署架构 - 单节点
综上所述,Redis单节点部署适用于对可靠性、容量和业务需求要求不高的场景,如缓存、计数器等。如果需要满足高可靠性、海量数据存储等需求,建议采用分布式部署方案。
2023-04-04 10:49:50
1157
原创 【Redis】简介
Redis是一个开源的内存数据结构存储系统,它支持多种数据结构(如字符串、哈希、列表、集合、有序集合)以及多种功能(如事务、发布/订阅、Lua脚本执行等)。Redis还提供了持久化功能,可以将数据存储到磁盘上,以便在重启后恢复数据。由于其高性能、可靠性和灵活性,Redis被广泛应用于缓存、会话管理、排行榜、实时分析、消息队列等领域。
2023-04-04 10:44:21
931
原创 【Shell】验证某些服务器的某个端口是否正常
为了验证服务器是否正常,或者为了验证某些服务器的某个端口是否正常,是否能够正常访问,特定写了当前的脚本,可以验证服务器或者服务器的端口是否正常。
2023-02-08 12:33:30
1751
原创 【maven】动态指定settings文件和仓库
说明由于在多maven版本,多仓库环境下,某些项目开发的时候需要特殊指定对应的仓库地址。示例mvn package install -DskipTests docker:build -s /home/xxx/.m2/settings.xml -Dmaven.repo.local=/home/xxx/.m2/repository命令说明:package:打包install:保存到本地仓库-DskipTests:忽略测试类docker:build:生成docker镜像-s:指定setting
2022-12-26 14:43:28
4655
原创 【Golang】gin客户端动态加载Html格式文件
router := gin.New() var files []string filepath.Walk("./static", func(path string, info os.FileInfo, err error) error { if strings.HasSuffix(path, ".html") { files = append(files, path) } return nil }) router.LoadHTMLFiles(files...)
2022-11-08 12:49:31
983
原创 【Redis】Redisson客户端模糊scan清理数据
代码实现 @Resource private RedissonClient redissonClient; // 删除缓存 String keyPrefix = "app:lock"; String keyPattern = MessageFormat.format("{0}:*", keyPrefix); Iterator<String> iterator = redissonClie
2022-11-07 21:23:33
2592
4
原创 【Docker】容器启动参数配置(cpu、内存限制等)
docker run -d --restart on-failure:2 --net host -m 4G --cpus 2 --memory-swap 6G -v 主机挂载路径:容器挂在路径 -e \"环境变量=值\" --name 容器名称 镜像名称
2022-10-18 22:26:18
1165
原创 【Shell】find查找特定文件类型里面的grep关键字(内容)
find . -name "*.log" | xargs grep --color "关键字"find:查找的命令.(点):查找的目录,可以 ./xxx或者/xxx/xxx之类且存在的路径-name:按照名称查找“*.log”:文件类型|(竖线):连接符xargs:前面命令查出来的内容作为参数grep:查找关键字命令–color:关键字颜色高亮
2022-10-18 09:24:37
2004
原创 【Sonar】根据sonar服务器规则扫描本地项目问题
mvn clean compile package -Dmaven.test.skip=true sonar:sonar -Dsonar.host.url=http://sonar服务器地址:端口 -Dsonar.login=访问的Token -DskipTests
2022-10-17 23:00:33
498
原创 【开源项目 - export-service】数据导出通用项目 之 简介,开箱即用,方便快捷
当前的服务是为了解决大量数据导出,需要占用大量的服务器资源、需要在页面长时间等待的问题,只需要配置导出模板, 提供导出数据的接口即可。 目前仅支持http协议GET、POST的导出、后期会新增dubbo、grpc等协议的支持。
2022-09-29 23:25:50
854
1
原创 【开源项目 - go-archetype】 一个golang基础框架,开箱即用
go 样例项目说明当前项目包含了基本的数据库连接操作,以及对应的增删改的操作示例,可以快速地进行项目的开发,里面实现签名、日志记录等简单的功能。里面包含了使用样例。数据库可以使用 domain/dao/gen-dao.sh 生成基本的增删改操作,但是先配置里面数据库连接信息。数据库初始化在 init.go 类下面启动项目找到 main.go 类,运行里面的 func main() {目录说明api:对外接口的入口,但是需要在main里面这样调用 xxxx.xxxx(routerGro
2022-09-29 19:43:33
371
原创 【开源项目 - http-sdk】http响应结果自动反序列化,使用Jackson反序列化
说明你可以理解它为http请求的sdk。很多开源的http请求工具类或者工具包,在调用接口之后,返回的都是字符串或者byte数组等,但是我们在项目中使用的都基本时对象的方式,所以还需要反序列化当前的响应结果,为了减少当前的操作,所以封装了当前的sdk,方便http请求时方便使用。当然项目若是SpringBoot/SpringCloud 等可以使用RestTemplate和FeignClient等工具,当前的工具更多应该在于SDK封装时使用,当然当前的包在所有的项目都可以使用,主要看你喜欢使用哪个方式而
2022-09-29 19:43:01
470
原创 【Java】map按照value(值)排序
private static Map<QueueResolve, Integer> executorChainMap = new HashMap<>(16); // 排序 executorChainMap = executorChainMap.entrySet().stream() .sorted(Map.Entry.comparingByValue()) .collect(Colle
2022-09-19 19:38:23
1385
原创 【Java】自定义注解和@Profile注解的结合使用
说明与自定义注解结合,验证某个环境是否需要执行满足当然注解的功能,可以验证执行和排除。代码/** * 验证是否执行 * * @param method 方法 * @return false 为不执行, true 为执行 */ private boolean checkProfile(Method method) { Profile profile = method.getAnnotation(Profile.class);
2022-09-09 12:41:06
398
原创 【Golang】ffmpeg获取音视频文件的时长
// 获取音频时长,结果为秒func GetWavDuration(filePath string) float64 { // 格式转换 ffmpeg -i xxxx 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,// cmd := fmt.Sprintf("ffmpeg -i %s 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//", filePath) c.
2022-08-26 19:09:20
3137
原创 【Java】SpringBoot SpEl表达式代码转换的实现
背景框架开发时一般不会使用我们常用的@Value或者@ConfigurationXXXX等注解,可能需要在代码里面使用原生的代码实现。代码实现Environment environment = applicationContext.getEnvironment(); if (environment == null) { return; }environment.resolvePlaceholders("待转换的SpEl表达式")
2022-08-26 19:06:15
526
原创 【SpringBoot】运行时代码动态赋值注解的成员变量值
说明开发SDK中,需要启动时动态修改注解的值,不能每次运行转换,这样影响性能,所以改为启动时修改,然后赋为最终的值,然后传递下去,后面不需要修改。代码 /** * 转换注解的成员变量值 * * @param objAnno 注解 * @param memberName 成员变量 */ protected void convertAnno(Object objAnno, String memberName) { Invoca
2022-08-26 18:56:30
1298
原创 【Golang】动态创建xxl-job任务和管理相关任务
背景由于某些特殊场景下,在使用xxl-job任务调度的时候,可能没有办法到后台一个一个的手动创建,这时需要配合业务进行相关创建、启用、停止或者删除的操作,方便业务快速地与任务调度相结合,达到通过业务状态控制调度的逻辑。相关代码####### 响应参数1、通用响应参数package xxl_resptype RespVO struct { Code int `json:"code"` Msg string `json:"msg"` Content string `jso
2022-08-05 15:44:17
1848
原创 【AI】人工智能之深度学习(1)—— 入门
人工智能包含的东西很多,据我所了解的,主要包括以下的内容,NLP自然语言处理引擎、DL机器学习引擎、KG知识图谱引擎、CV计算机视觉引擎、DL深度学习引擎等等
2022-07-28 21:03:14
1396
1
从锁的介绍,到java锁(lock、synchronor、aqs)到分布式锁 redis、zk、数据库的悲观锁和乐观锁
2022-05-20
互联网高并发应用 之 缓存篇,从浏览器,cdn,后端中间间,数据库都有涉及。
2022-05-22
plsql x32 绿色免安装版
2018-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅