redis 两种持久化策略 RDB&&AOF

reids 

RDB

redis 过期策略

reids 

redis 缓存策略将redis当做使用LRU算法的缓存来使用可用策略noeviction:返回错误当内存限制达到并且客户端尝试执行会让更多内存被使用的命令(大部分的写入指令,但DEL和几个例外)allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。volatile-

redis 布隆过滤器 解决 缓存穿透


redis 布隆过滤器docker 安装 redis 布隆过滤器使用redis 布隆过滤器docker 安装 redis 布隆过滤器docker pull redislabs/rebloomdocker run -itd --name rebloom -p 6378:6379 --restart=a

redis 发布订阅

reids 

redis 发布订阅使用特点redis 发布订阅使用redis中有比较简单的发布订阅模型publish queue1 你好啊; # 发布一条消息在另一端SUBSCRIBE queue1; #订阅这条消息特点轻量级,但是没有mq 那么多功能比如回溯,消息可靠性等功能

redis 统计指定时间内用户登陆数并去重


redis 统计指定时间内用户登陆数并去重setbit 20220501 1 1 # 设置20220501 第一个位的值为1 代表2330501那天1位置的用户登陆了setbit 20220501 6 1 # 设置20220501 第六个位的值为1 代表2330501那天6位置的用户登陆了setb

redis 统计任意时间区间,统计单个用户的登录天数


统计任意时间点,系统统计所有用户的登录天数如2022年1月3日 前所有用户的的登陆天数或2022年5月所有用户的实际登陆天数

redis基础语法


概括Redis 是完全开源免费的,遵守BSD 协议,是一个灵活的高性能key-value 数据结构存储,可以用来作为数据库、缓存和消息队列。 Redis 比其他key-value 缓存产品有以下三个特点: Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存使用

java 线程池


线程池ThreadPool线程池包含两个list一个是线程list 一个是等待队列的list一个线程池包含7个重要的参数corePoolSize: 核心线程数 线程池被创建时 该线程池中就会有这两个线程maximumPoolSize:最大线程数keepAliveTime: 如果线程池长期不工作会归还

coffee note


咖啡风味轮

java 容器


容器MapTreeMap底层是红黑树多线程容器HashTable&&Vector所有方法自带锁。java1.0 最早的数据类,所有方法都加了synchronized,基本不会使用这个类型。HashMap默认是无锁的,如果需要锁可以使用 var synchronizedMap = Co

java 4种引用类型


java引用类型强引用普通的引用都是强引用Object o = new Object();软引用弱引用需饮用

ThreadLocal 底层


ThreadLocal作用为会为每个线程实现上下文

AQS 底层


AQSJDK中许多并发工具类的内部实现都依赖于AQS,如ReentrantLock, Semaphore, CountDownLatch等。AQS底层依靠CAS与同步队列。AbstractQueuedSynchronizer(队列同步器)volatile int state; 一个保证可见性的参数由

鸳鸯奶茶 做法


生活记录2023-05-06配方600cc水 + 3包立顿奶茶茶包 炖10分钟20g 糖 + 1小勺盐(提位)200g 牛奶 这次使用的是新疆牛奶(非鲜牛奶)两份espesso (40g * 2)评价茶味略淡考虑下次多煮一会儿/增加茶包数量热饮尝试,冰镇暂未尝试plan序号尝试是否尝试体验结果1想尝

定时备份linux里的数据

linux 

定时备份linux里的数据最近听说有博主的文档被删除了,触发了我的被害妄想症所以做了备份的策略策略很简单,利用crontab 定期去备份指定路径,压缩 并上传到ftp中。crontab利用工具linux crontab一台ftp 服务器由于我shell 命令不太熟,这里使用的java 实现,打成do

linux crontab

linux 

linux crontabcrontab 是linux 的定时任务下面举几个常用的命令crontab -e #新增/修改定时任务tail -f /var/log/cron #这里是查看crontab 的日志

java 多线程 之锁


java 锁话术话术解释race condition竞争条件,指的是多线程访问共享数据时产生的竞争unconsistency数据的不一致问题,在并发环境下产生了非期望的结果monitor锁critical section临界区, 就是被锁的代码区域如果临界区执行时间比较长,叫做锁的粒度比较

java 多线程编程 三大特性


java 多线程编程 三大特性可见性volatile使用private static /*volatile*/ Boolean b = true; public static void main(String[] args) throws InterruptedException {

java 多线程 线程打断inerrupt ,线程结束


线程打断inerruptinerrupt() //设置打断标记位 其实就是告诉jvm 我想要打断这个线程,但是是否打断什么时候打断jvm 说了算isInerrupt() //是否被打断过 查询标记位static inerrupted() //返回当前线程是否被打断过,并重制打断标记 true->

线程的状态


线程的状态NEW 创建RUNNABLE 可运行 (有两个子状态1.ready 2.running)WAIT 等待被执行TIMED WAITING 隔一段时间后自动唤醒BLOCKING 阻塞状态TERMINATED 线程结束