reactor还是redis epoll
Dockerfile、常用和不常用命令、dockerfile构建一个djagno项目、docker私有仓库、镜像传到官方仓库、镜像分层、 私有仓库搭建、dockercompose介绍、dockercompose部署flask+redis项目、dockercompose一键部署路飞项目
1 Dockerfile 1.1 常用和不常用命令 FROM: 指定基础镜像 RUN: 构建镜像过程中需要执行的命令。可以有多条。docker build CMD:添加启动容器时需要执行的命令。多条只有最后一条生效。可以在启动容器时被覆盖和修改。 ENTRYPOINT:同CMD,但这个一定会被执行, ......
容器操作、应用部署、mysql 部署、redis、nginx、迁移与备份、Dockerfile
1 容器操作 # 启动容器 docker start 容器id # 停止容器 docker stop 容器id # 文件拷贝 # 容器的文件copy到宿主机上(不是在容器内执行) docker cp 容器名称:容器目录 需要拷贝的文件或目录 docker cp 20fd8:/home/lqz.txt ......
Ubuntu 安装最新版 redis
可以通过以下步骤在 Ubuntu 上安装最新版本的 Redis:1. 更新软件包索引列表。打开终端并使用如下命令:sudo apt update2. 安装 Redis 依赖项。使用如下命令:sudo apt install build-essential tcl3. 下载最新版本的 Redis。可以 ......
Redis循序渐进
常见操作 String字符串 set key value [ex seconds] [px milliseconds] [nx|xx] 设置key及值,过期时间可以使用秒或毫秒为单位 setrange key offset value 从偏移量开始复写key的特定位的值 [root@redisA 6 ......
Redis沙盒逃逸(CVE-2022-0543)漏洞复现
0x01 概述 Redis 是著名的开源 Key-Value 数据库,其具备在沙箱中执行 Lua 脚本的能力。Debian 以及 Ubuntu 发行版的源在打包 Redis 时,在 Lua 沙箱中遗留了一个对象 package,攻击者可以利用这个对象提供的方法加载动态链接库 liblua 里的函数, ......
[Redis] 解决多个 Redis 服务同步删除有关联的 key
以下内容基于 ChatGPT 的回答。 我有多个 redis 服务,比如有 A, B, C 三个,他们供不同的业务服务使用。有一个需求是,A 服务中删除一个key后,希望能同时删除 B, C 服务中有关联的 key ,但这个 key 名称不一样相同,关联关系是可配置的。请问有什么办法实现? 解决方案 ......
Linux - IO多路复用之epoll
1. epoll概述 epoll 全称 eventpoll,是 linux 内核实现 IO 多路转接 / 复用(IO multiplexing)的一个实现。IO 多路转接的意思是在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。 epoll 是 s ......
redis 分布式锁
如何利用Redis实现锁机制用一句话概括的说,其实Redis实现锁机制其实就是在Redis中设置一个key-value,当key存在时,即上锁,删除key即解锁。当然要想实现一个很健壮的锁机制,这其中还有很多细节不容忽视,所以下面,我们一步一步的跟着思路去思考如何使用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到底是不是单线程
常说的 Redis 是单线程,主要是指 Redis 对外提供键值存储服务的主要流程,即网络 IO 和键值对读写是由⼀个线程来完成的。除此外 Redis 的其他功能,比如持久化、 异步删除、集群数据同步等,是由额外的线程执⾏的。 并且,从redis6.0开始,网络 IO 和键值对读写也支持多线程。 因 ......
【Redis】常用命令介绍
一、Redis常用基本命令 官方文档:https://redis.io/commands/ 参考文档:http://redisdoc.com/ #可以使用help命令查看各redis命令用法[root@Client-Ubuntu-1804-250:~]# redis-cli -a redis --n ......
知乎问题:如何说服技术老大用 Redis ?
这个问题很微妙,可能这位同学内心深处,觉得 Redis 是所有应用缓存的标配。 缓存的世界很广阔,对于应用系统来讲,我们经常将缓存划分为本地缓存和分布式缓存。 本地缓存 :应用中的缓存组件,缓存组件和应用在同一进程中,缓存的读写非常快,没有网络开销。但各应用或集群的各节点都需要维护自己的单独缓存,无 ......
多路复用epoll
epoll基本原理 epoll 相对于 select 与 poll 有较大的不同,主要是针对前面两种多路复用 IO 接口的不足 与 select/poll 方案对比 select 方案使用数组存储文件描述符,最大支持 1024 select 每次调用都需要将描述符集合拷贝到内核中,非常消耗资源 po ......
Reactor接口之五
###defaultIfEmpty @Test public void testDefaultIfEmpty() { Flux.range(1,10) .defaultIfEmpty(30) .subscribe(System.out::println); } @Test public void t ......
Reactor接口之四
###interval @Test public void testInterval() { CountDownLatch countDownLatch = new CountDownLatch(1); Flux.range(1,10) .zipWith(Flux.interval(Duration ......
Reactor接口之三
###defer @Test public void testDefer() { Flux.defer(() -> { return Flux.range(0,10); }) .subscribe(System.out::println); } 输出0到9。defer每次对结果Flux进行订阅时,懒 ......
redis分布式锁
分布式锁是可以跨越多个实例,多个进程的锁。 一个tomcat实例是一个JVM进程,单体锁(synchronized、ReentrantLock)是JVM层面的锁,只能控制单个实例上的并发访问安全,多实例下依然存在数据一致性问题。 分布式锁:所有实例的所有线程都去获取同一把锁,但只有一个线程可以成功的 ......
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】-使用Lua脚本解决多线程下的超卖问题以及为什么?
一.多线程下引起的超卖问题呈现1.1.我先初始化库存数量为1、订单数量为0 1.2.开启3个线程去执行业务 业务为:判断如果说库存数量大于0,则库存减1,订单数量加1 结果为:库存为-2,订单数量为3 原因:如下图所示,这是因为分别有6个指令(3个库存减1指令,3个订单数量加1指令)在redis服务 ......
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 ......
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 ......
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 ......
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失败,则需 ......
配置docker启动的redis密码
一、配置docker启动的redis密码 在docker中通过命令进入redis容器 docker exec -it redis redis-cli 查看当前redis有没有设置密码:config get requirepass 127.0.0.1:6379> config get requirep ......
Ubuntu 下判断 cmake 用的 gcc 还是 g++,如何切换版本
> 1 / 1 > > Ubuntu 下怎么知道 cmake 用的 gcc 还是 g++ 1 / 1 在Ubuntu上,可以通过`cmake`命令行选项`-DCMAKE_CXX_COMPILER`来指定C++编译器,而默认情况下,`cmake`将使用系统的默认编译器。 要查看`cmake`使用的默认 ......
springboot整合redis做简单缓存
一、引入依赖 <!-- 引入redis依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency ......