- 博客(16)
- 收藏
- 关注
原创 Redis持久化
Redis的持久化有两种 快照 Aof日志 快照: 1 默认是开启的, 2默认的会产生dump.rdb 文件{ save 900 1 (900秒内有1次间修改,就执行一次快照) save 300 10 save 60 10000 } 备份流程 1 在Redis 运行过程中,Redis 发送一条save 创建快照,但save是一个阻塞命令,或导致其他命令挂起,bgsave 会fork 一个子进程去处理备份的事情,不致影响其他操作 2 我们定义的备份规则,如果有满足的,也会自动触发save 3redis
2021-08-29 07:46:28
191
原创 docker
2021年8月9日 8:51 安装docker后 启动docker systemctl start docker 停止docker systemctl stop docker 重启 docker systemctl restart docker 检查docker状态 Systemctl status docker Docker info 查看docker信息 Dockre ps 查看 正在运行的容器 Docker ps -a 查看所有容器 Docker ps -l 查看新...
2021-08-12 17:28:06
249
原创 redis-Cell 深入限流操作
深入限流操作 Redis-cell 模块,这个模块是漏斗算法 漏斗算法:请求大口进入,小口处 。 首先安装reids-cell模块 https://github.com/brandur/redis-cell/releases mkdir redis-cell 文件夹 然后 mv libredis_cell.d /redis-cell mv libredis_cell.so ./redis-cell 将这两个移动到文件夹 vi redis.conf 保存退出 然后启动redis 如果出现CL.THR
2021-07-27 16:39:09
243
原创 Redis-限流
预备 知识 Pipeline(管道) 本质是有客户端提供的一种操作,Pipline 通过调整指令列表的读写顺序,可以节省IO时间 简单限流 public class RateLiniter { private Jedis jedis; public RateLiniter(Jedis jedis) { this.jedis = jedis; } /** * * * @param user 操作的用户,相当于限流对象
2021-07-27 15:06:19
136
原创 redis-布隆过滤器
我们用hyperLogLog 来估计一个数,有偏差但也够用了hyperLogLog提供了两个数据结构: pfadd: pfcount: 但是HyperLogLog 没有判断是偶包含的方法,例如pfexists,pfcontains 例如:今日头条,推送的都是相似的,但没有重夫的 Bloom Filter 介绍 解决上面的去重问题,不会像使用缓存那样浪费空间,但也不太精确(让他精确占空间) bloomFilter 的数据结构: pfexists,(这个是精确的) pfcontains Bloon Filter
2021-07-27 10:22:46
95
原创 redis-HyperLogLog
一般评估网站的访问量: pv page view 页面浏览 uv User view 访问用户 实现的话pv 可以用简单的计数器实现,uv则涉及去重 我们首先需要在前端给每一个用户生成一个人唯一id,无论用户是否登录,都要有一个唯一id,这个id伴随请求...
2021-07-27 08:28:55
106
原创 Redis操作图位----------再谈bit操作
用户一年的签到记录,如果用String,就要用365个key/value,比较麻烦,通过位图可以简化这个操作。 他的统计很简单: 每天记录一个位,365个位,大概 46个字节,这样可以有效节省存储空间,如果有一天想统计用户一共签到多少天,统计1 的个数即可 对于位的操作。可直接操作对应的字符串(ger/set),可以直接操作位(getbit/setbit) ## 基本操作 Redis 的基本操作可以归为两类: ### 零存整取 例如存储java字符串: |字符|ASCII|二进制| ...
2021-07-27 07:43:35
162
原创 redis
安装Redis Ctrl+c 停止服务 ## String人 Append 如果key 存在,则直接可以在值后追加之,否则创建新的k-v decr 自减 Set 赋值 Decrby 给自减设置步长 getRange 和Java中的subString 相似 incr自增 过期时间 key Setnx 不会覆盖已经存在的值 setRange 覆盖一个已经存在的value ## List lpush 表示将value的值从左向右的依次...
2021-07-26 11:03:39
188
原创 redis的分布式锁
# redis的分布式锁 ** 问题场景** 例如:一个用户修改操作,修改一个用户的状态,首先在数据库查出用户的状态,然后再内存中进行修改,然后再从回去,在单线程中这个是没问题,但在多线程中,由于读取,修改,存储这三个操作不是原子性,所以在多线程中会出现问题 数据库中事务的四大特性: 原子性:事务包含的操作要么全部成功,要么全部失败回滚 一致性:事务执行前后必须一致 持久性:事务一旦提交,就是永久性的 隔离性 : 每个用户开启的事务,不能影响其他事物 分布式锁的思路就是:进来一个...
2021-07-26 10:15:29
213
原创 进制转换··
二进制转十进制 规则: 从最低位(右边)开始将每个位上的数字提取出来,乘以2的(位数-1)次方,然后求和: 将0b1011转成10进制: 1 X 2的0次方 1 1 X 2的1次方2 0 X ~~~~~~~ 1 X 2 的3次方 8 11 八进制转十进制 从最低位(右边)开始将每个位上的数字提取出来,乘以8的(位数-1)次方,然后求和: 例子 0234 4X8的0次方 ······1 3X8的1 次方·········24 2X8的2次方 ·········128 十六进制转十进制 从最低位(右边)开始将
2021-07-22 23:25:18
203
原创 springcloud-Hystrix
2. Hystrix 2.1 基本公能介绍 hystrix 叫做断路器/熔断器,就是因为微服务模块太多,每一个模块出错都会引起服务整体出错。能通过提前配置的东西,让不影响整个系统、 2.2 基本用法 2.2.1 添加配置文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</ar
2021-07-22 17:52:45
105
原创 Spring属性注入
Spring的属性注入一、创建moudle二、使用步骤1.创建实体类2.编写application.properties3编写controller进行测试解决乱码问题 一、创建moudle 1 导入spring-boot-stater-web 这一个jar即可 二、使用步骤 1.创建实体类 package com.king.entity; import org.springframework.beans.factory.annotation.Value; import org.springframewo
2021-06-12 17:15:50
89
原创 01redis集成springboot
1 首先解决连接问题 (1)关闭防火墙 (2)修改redis配置 vim redis.cofig (注释掉 bin127.0.0.1 即 #bin 127.0.0.1,后面写个bin 0.0.0.0) (protected-mode yes 改为 protected-mode no (即该配置项表示是否开启保护模式,默认是开启,开启后Redis只会本地进行访问,拒绝外部访问)。) 2 开启springboot整合redis (1)导包 <dependency> <gro
2021-06-03 22:51:48
169
原创 面向对象OOP1
面向对象解决养猫问题 定义一个猫类Cat,自定义属性 name,age, 自定义行为 吃东西 eat() package oop; public class JavaObject { public static void main(String[] args) { //使用面向对象OOP解决养猫猫问题 //实例化一只猫 Cat cat = new Cat(); cat.age=1; cat.name="maomao";
2021-05-31 21:38:21
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人