- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 【git】多仓库开发
通常我们习惯了在单个仓库下多分支开发,最近用了多仓库开发,我拿一个开源项目举例,总结一下基本流程。1.fork项目到自己仓库2.把自己仓库项目pull到本地3.在本地新建开发分支git checkout -b dev4.修改/添加分支对应的远程仓库修改原origin为你fork项目的原地址:git remote set-url origin git@github.com:authorName/project.git新增dev为你自己仓库地址:git rem...
2024-04-23 21:27:15
417
1
原创 【go】学习笔记:数组切片
切片的创建来源分别是基于数组、切片、直接创建,切片引用了一个数组,包含指针、长度、容量三部分,通过本例可以发现,通过切片(或数组,效果一样)创建切片时, 如果最小引用为0,切片的指针可以指向原数组(或切片),其容量是不会丢失的,但是如果最小值大于0,就会丢失其之前部分的容量。package mainimport "fmt"func main() { arr := []int{1,2,3,4,5,6,7,8,9,0} arr1 := arr[0:3] fmt.Print...
2022-01-14 15:32:30
286
原创 【go】学习笔记
最近开始学习go,打算先学习基本语法,再刷一些简单的算法巩固一下,再选一两个go框架看看微服务和对高并发的支持。目前学语法层面来说,学C时候那种感觉又回来了...
2022-01-11 19:35:14
349
原创 单用户并发问题
最近写了一个感恩节相关活动,一个做任务获得活动币的接口提交后被领导批“会被用户刷爆”,代码非常简单,就是redis判断该用户今日是否做过该任务,没做过->活动币写入mysql 、redis。 刚开始还一脸懵,我判断的是单个用户啊,又不是整个平台的秒杀,每个用户又互不影响,刷啥? 再说redis是单线程的,就算一个用户真在多个设备请求了,那我完成一次后就改redis了后来的就刷不到了啊...难道是我先写mysql再写redis容易出问题,并发会出现在写...
2021-11-20 23:53:06
1277
原创 【redis】mysql与redis数据一致性问题
在增删改数据后,我们往往需要删除旧缓存,以生成新的缓存,但是redis和mysql无论谁先执行都不能保障另一个会失败,所以会出现不一致问题。首先需要确定的是,由于网络等各种原因的限制,mysql与redis数据是不可能保持强一致性的,就算是单机、mysql加锁、串行化执行都不能保证强一致性。通常我们所说的一致性需要根据业务场景综合分析对策。个人认为一致性的要求分为“时效性”和“准确性”两方面。时效性:mysql更新后redis尽快删除。准确性:mysql更新后redis也要删除,尽可能减少更
2021-08-26 09:59:46
257
原创 【redis】scan系列命令详解
scan常用于在大量redis key中寻找具有指定前缀的key(当然如果你一直使用图形工具可能不太了解它)它是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程,初始游标为0。SCAN 返回一个包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标, 而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。如果新游标返回 0 表示迭代已结束,即不再又下一页的数据,如果
2021-08-16 11:43:54
4439
1
原创 【中间件】RocketMQ问答合集
1.为什么要引入MQ(好处)异步、解耦、削峰2.MQ缺点系统可用性降低任何集群的可用性都是<1的,因此引入MQ需要尽可能保证其可靠性系统复杂度增高消息一致性问题系统A处理完业务后发消息给B、C,发给B的消息失败了,发给C的消息成功了,该怎样处理?(两个方面:一方面尽可能保证一致性,另一方面业务代码中需要考虑处理不一致性问题)3.MQ对比...
2021-07-15 15:11:27
172
原创 【mysql】常见问题
1.mysqld和mysql.server启动mysql有什么区别mysqld:这个可执行文件就代表着 MySQL 服务端程序,运行这个可执行文件就可以直接启动一个服务端进程。mysqld_safe:这是一个启动脚本,它会间接调用mysqld,而且还顺便启动了另外一个监控进程,这个监控进程在 MySQL 服务端进程挂了之后可以帮助重启它。另外,使用mysqld_safe启动 MySQL 服务端进程时,它会记录服务端出错信息和其他诊断信息,从而方便后续排查错误原因。mysql.server:这..
2021-06-23 17:06:51
274
原创 【算法】力扣菜鸟
1.两个内部已排序数组,如arr1=[1,3,4,6,7],arr2=[3,4,6,8,9],将两个数组合并为一个新的排序数组。$arr1=[1,3,4,5,9];$arr2=[2,4,6,7,9];function myMerge($arr1,$arr2){ $i=0;$j=0; $int = array(); while($i<count($arr1) && $j<count($arr2)){ $int[] = $arr1[$i]<$arr
2021-06-04 16:51:13
151
原创 【bug记录】laravel8配置phpredis集群连接
集群搭建好了,本地也能正常访问,在app\database.php redis数组中做如下配置:<?phpuse Illuminate\Support\Str;return [ 'redis' => [ 'client' => env('REDIS_CLIENT', 'phpredis'), 'options' => [ 'cluster' => env('REDIS_CLUSTER', 're
2021-05-21 21:53:49
2999
2
原创 【laravel】门面:重载、延迟静态绑定、注册树模式、外观模式、Mockery
【laravel】门面:重载、延迟静态绑定、注册树模式、外观模式、Mockery
2021-05-07 10:31:45
261
原创 【redis】lua脚本入门
之前文章中提到过,redis官方在考虑lua代替事务,与事务相比,lua脚本也具有原子性,并且lua脚本在执行的时候,也会阻塞其他脚本或者redis命令并发执行,所以要尽量避免执行时间很长的脚本。与事务只在所有语句执行完才能看到返回信息不同,lua可以在运行途中输出执行结果,好根据此结果判断接下来要干啥(if),还支持客户端缓存lua语句。纯函数脚本应该被写成纯函数,对于同样的数据集输入,给定相同的参数,脚本执行的 redis 写命令总是相同的。脚本执行的操作不能依赖于任何隐藏(非显式)数据,不
2021-05-02 21:10:51
624
原创 【工具】JMeter入门
jmeter是非常好用的web服务器压测工具,尤其是当我们写了一些核心代码时,压测非常有必要,因为一些bug在并发大的时候才能测出,比如涉及分布式锁的超卖问题。下载安装下载本机windows系统,官网http://jmeter.apache.org/download_jmeter.cgi下载最新版,因为不需要源码,所以我选了binaries,又win选zip,linux选tgz。解压解压到自己指定位置,D:\abc\jmeter\apache-jmeter-5.4配置环境变量
2021-04-28 17:11:48
89
原创 【redis6.0】部分配置文件释义
redis可以在不使用内置默认配置的配置文件的情况下启动,但是它不适合线上,根据服务器情况调整redis.conf是非常必要的。includeredis.conf可以包含其他位置的配置文件,但是一般将include的文件放在redis.conf开头,免得它覆盖掉redis.conf的配置。bind...
2021-04-22 21:01:27
313
原创 【redis】cluster相关知识点整理
cluster为redis带来了什么呢?高达1000个节点的高性能和线性可扩展性,在多个节点间自动拆分数据集 可接受的写安全度系统尝试(尽最大努力)保留来自与大多数主节点连接的客户端的所有写操作。通常有一些小窗口,在这些窗口中可以丢失已确认的写入。当客户端位于少数分区时,丢失已确认写入的窗口会更大。一部分节点出现故障或无法与集群的其余部分通信时,继续运行的能力。redis cluster能够在大多数主节点都可访问且每个不再可用的主节点上至少有一个可访问的从节点的分区中幸存。而且,通过使用副本迁
2021-04-18 22:28:45
336
2
原创 【php】单例模式
单例模式是为了让类只被实例化一次,比如在写文件等对资源的操作时,可以避免一个全局使用的类频繁地创建与销毁。php代码实现:class singel{ private static $i; //避免被实例化 private function __construct(){ echo 'test'; } //避免被clone private function __clone(){ } public static fu
2021-04-12 10:20:54
102
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人