reactor还是redis epoll

Dockerfile、常用和不常用命令、dockerfile构建一个djagno项目、docker私有仓库、镜像传到官方仓库、镜像分层、 私有仓库搭建、dockercompose介绍、dockercompose部署flask+redis项目、dockercompose一键部署路飞项目

1 Dockerfile 1.1 常用和不常用命令 FROM: 指定基础镜像 RUN: 构建镜像过程中需要执行的命令。可以有多条。docker build CMD:添加启动容器时需要执行的命令。多条只有最后一条生效。可以在启动容器时被覆盖和修改。 ENTRYPOINT:同CMD,但这个一定会被执行, ......
dockercompose 仓库 项目 镜像 常用

容器操作、应用部署、mysql 部署、redis、nginx、迁移与备份、Dockerfile

1 容器操作 # 启动容器 docker start 容器id # 停止容器 docker stop 容器id # 文件拷贝 # 容器的文件copy到宿主机上(不是在容器内执行) docker cp 容器名称:容器目录 需要拷贝的文件或目录 docker cp 20fd8:/home/lqz.txt ......
容器 Dockerfile 备份 mysql redis

Ubuntu 安装最新版 redis

可以通过以下步骤在 Ubuntu 上安装最新版本的 Redis:1. 更新软件包索引列表。打开终端并使用如下命令:sudo apt update2. 安装 Redis 依赖项。使用如下命令:sudo apt install build-essential tcl3. 下载最新版本的 Redis。可以 ......
最新版 Ubuntu redis

Redis循序渐进

常见操作 String字符串 set key value [ex seconds] [px milliseconds] [nx|xx] 设置key及值,过期时间可以使用秒或毫秒为单位 setrange key offset value 从偏移量开始复写key的特定位的值 [root@redisA 6 ......
循序渐进 Redis

Redis沙盒逃逸(CVE-2022-0543)漏洞复现

0x01 概述 Redis 是著名的开源 Key-Value 数据库,其具备在沙箱中执行 Lua 脚本的能力。Debian 以及 Ubuntu 发行版的源在打包 Redis 时,在 Lua 沙箱中遗留了一个对象 package,攻击者可以利用这个对象提供的方法加载动态链接库 liblua 里的函数, ......
漏洞 Redis 2022 0543 CVE

[Redis] 解决多个 Redis 服务同步删除有关联的 key

以下内容基于 ChatGPT 的回答。 我有多个 redis 服务,比如有 A, B, C 三个,他们供不同的业务服务使用。有一个需求是,A 服务中删除一个key后,希望能同时删除 B, C 服务中有关联的 key ,但这个 key 名称不一样相同,关联关系是可配置的。请问有什么办法实现? 解决方案 ......
Redis 多个 key

Linux - IO多路复用之epoll

1. epoll概述 epoll 全称 eventpoll,是 linux 内核实现 IO 多路转接 / 复用(IO multiplexing)的一个实现。IO 多路转接的意思是在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。 epoll 是 s ......
Linux epoll

redis 分布式锁

如何利用Redis实现锁机制用一句话概括的说,其实Redis实现锁机制其实就是在Redis中设置一个key-value,当key存在时,即上锁,删除key即解锁。当然要想实现一个很健壮的锁机制,这其中还有很多细节不容忽视,所以下面,我们一步一步的跟着思路去思考如何使用Redis实现一个分布式的锁: ......
分布式 redis

Netty_Redis_Zookeeper高并发实战-读书笔记

第1章 高并发时代的必备技能 1.netty Netty是JBOSS提供的一个Java开源框架,基于NIO的客户端/服务器编程框架,能够快速开发高并发、高可用、高可靠的网络服务器程序,也能开发高可用、高可靠的客户端程序。 NIO是指:非阻塞输入输出(Non-Blocking IO)。 优点: API ......

[230]连接Redis后执行命令错误 MISCONF Redis is configured to save RDB snapshots

今天在redis中执行setrange name 1 chun 命令时报了如下错误提示: (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. ......
Redis configured snapshots 命令 错误

redis到底是不是单线程

常说的 Redis 是单线程,主要是指 Redis 对外提供键值存储服务的主要流程,即网络 IO 和键值对读写是由⼀个线程来完成的。除此外 Redis 的其他功能,比如持久化、 异步删除、集群数据同步等,是由额外的线程执⾏的。 并且,从redis6.0开始,网络 IO 和键值对读写也支持多线程。 因 ......
线程 redis

【Redis】常用命令介绍

一、Redis常用基本命令 官方文档:https://redis.io/commands/ 参考文档:http://redisdoc.com/ #可以使用help命令查看各redis命令用法[root@Client-Ubuntu-1804-250:~]# redis-cli -a redis --n ......
命令 常用 Redis

知乎问题:如何说服技术老大用 Redis ?

这个问题很微妙,可能这位同学内心深处,觉得 Redis 是所有应用缓存的标配。 缓存的世界很广阔,对于应用系统来讲,我们经常将缓存划分为本地缓存和分布式缓存。 本地缓存 :应用中的缓存组件,缓存组件和应用在同一进程中,缓存的读写非常快,没有网络开销。但各应用或集群的各节点都需要维护自己的单独缓存,无 ......
老大 问题 Redis 技术

多路复用epoll

epoll基本原理 epoll 相对于 select 与 poll 有较大的不同,主要是针对前面两种多路复用 IO 接口的不足 与 select/poll 方案对比 select 方案使用数组存储文件描述符,最大支持 1024 select 每次调用都需要将描述符集合拷贝到内核中,非常消耗资源 po ......
epoll

Reactor接口之五

###defaultIfEmpty @Test public void testDefaultIfEmpty() { Flux.range(1,10) .defaultIfEmpty(30) .subscribe(System.out::println); } @Test public void t ......
接口 Reactor

Reactor接口之四

###interval @Test public void testInterval() { CountDownLatch countDownLatch = new CountDownLatch(1); Flux.range(1,10) .zipWith(Flux.interval(Duration ......
接口 Reactor

Reactor接口之三

###defer @Test public void testDefer() { Flux.defer(() -> { return Flux.range(0,10); }) .subscribe(System.out::println); } 输出0到9。defer每次对结果Flux进行订阅时,懒 ......
接口 Reactor

redis分布式锁

分布式锁是可以跨越多个实例,多个进程的锁。 一个tomcat实例是一个JVM进程,单体锁(synchronized、ReentrantLock)是JVM层面的锁,只能控制单个实例上的并发访问安全,多实例下依然存在数据一致性问题。 分布式锁:所有实例的所有线程都去获取同一把锁,但只有一个线程可以成功的 ......
分布式 redis

redis的持久化

################################ save [work@a8-cloud-dba-db08 ~]$ redis-cli -a root -p 6381127.0.0.1:6381> save OK save命令对应的日志: [work@a8-cloud-dba-db0 ......
redis

【Redis】-使用Lua脚本解决多线程下的超卖问题以及为什么?

一.多线程下引起的超卖问题呈现1.1.我先初始化库存数量为1、订单数量为0 1.2.开启3个线程去执行业务 业务为:判断如果说库存数量大于0,则库存减1,订单数量加1 结果为:库存为-2,订单数量为3 原因:如下图所示,这是因为分别有6个指令(3个库存减1指令,3个订单数量加1指令)在redis服务 ......
线程 脚本 问题 Redis Lua

Reactor接口之二

####merge @Test public void testMerge() { Flux.merge(Flux.just(1,2,3),Flux.range(5,6)) .subscribe(System.out::println); } merge将多个Flux合并成一个Flux。 @Test ......
接口 Reactor

laravel-permission 缓存导致的Redis带宽占用问题

先决条件 spatie/laravel-permission: 3.18.0 权限数: 634 角色数: 94 问题 laravel-permission 的缓存机制设计的不太合理 将所有的权限存放在一个大set中,且存放了许多不必要的信息。 当项目拥有大量的角色权限,使得这个set达到了11mb, ......

Reactor接口之一

###一、生成Flux ####range @Test public void testRange() { Flux.range(1,10) .subscribe(System.out::println); } range第一个参数是起始的数字,第二个参数是要生成数字的数量。Flux.range(1 ......
接口 Reactor

Linux 搭建redis集群(哨兵模式)

环境: 192.168.56.101 192.168.56.102 192.168.56.103 1、在三台服务器上都安装redis 安装步骤:https://www.cnblogs.com/leihongnu/p/14734603.html 2、配置主从 192.168.556.101:配置文件r ......
哨兵 集群 模式 Linux redis

ubuntu安装redis

首先下载安装redis,并测试是否安装正确 wget http://download.redis.io/releases/redis-6.0.8.tar.gz tar -zxvf redis-6.0.8.tar.gz cd redis-6.0.8 make make test 如果make失败,则需 ......
ubuntu redis

配置docker启动的redis密码

一、配置docker启动的redis密码 在docker中通过命令进入redis容器 docker exec -it redis redis-cli 查看当前redis有没有设置密码:config get requirepass 127.0.0.1:6379> config get requirep ......
密码 docker redis

Ubuntu 下判断 cmake 用的 gcc 还是 g++,如何切换版本

> 1 / 1 > > Ubuntu 下怎么知道 cmake 用的 gcc 还是 g++ 1 / 1 在Ubuntu上,可以通过`cmake`命令行选项`-DCMAKE_CXX_COMPILER`来指定C++编译器,而默认情况下,`cmake`将使用系统的默认编译器。 要查看`cmake`使用的默认 ......
版本 还是 Ubuntu cmake gcc

springboot整合redis做简单缓存

一、引入依赖 <!-- 引入redis依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency ......
缓存 springboot redis

邰晓梅-海盗派测试分析是底层逻辑理论还是纸上谈兵?

从事软件测试有5年了,虽然本硕的专业和软件关系不大,但是我也算是个干一行爱一行的人,工作中不断学习,加强自己的技能。学到了,感悟到了很多。 最近一两年越发的发现,身边软件测试的人大都是转专业过来的,有少量的同学按照自己的理解去做测试用例设计。这导致了每个人的设计方案差别很大,如果一个团队中对同一个产 ......
纸上谈兵 海盗 底层 逻辑 理论