07 2024 档案

摘要:redis是用"单线程-多路复用io模型"来实现高性能的内存数据服务的,这种机制避免了使用锁,但是同时这种机制在进行sunion(set类型元素合并)之类的比较耗时的命令时会使redis的并发下降。因为是单一线程,所以同一时刻只有一个操作在进行,所以,耗时的命令会导致并发的下降,不只是读并发,写并发 阅读全文
posted @ 2024-07-28 23:52 李若盛开 阅读(458) 评论(0) 推荐(0) 编辑
摘要:原因1:实例内存达到上限 1)排查思路 如果 Redis 实例设置了内存上限 maxmemory,那么也有可能导致 Redis 变慢。 当把 Redis 当做缓存使用时,通常会给这个实例设置一个内存上限 maxmemory,然后设置一个数据淘汰策略。而当实例的内存达到了 maxmemory 后,可能 阅读全文
posted @ 2024-07-28 14:27 李若盛开 阅读(448) 评论(0) 推荐(0) 编辑
摘要:1、先进行基准测试,查看redis是否存在查询过慢情况,根据自己的情况而定2、检查网络连接是否出现延迟,数据丢包问题(可能性小)3、开启慢查询日志,通过日志可以清楚知道哪些命令比较耗时,同时避免使用复杂O(N) 等命令4、查看是否写入了bigkey,避免写入bigkey5、查看是否出现大量集中的ke 阅读全文
posted @ 2024-07-28 14:14 李若盛开 阅读(531) 评论(0) 推荐(2) 编辑
摘要:在使用 Redis 管道技术时,要注意一些限制,避免踩坑: Pipeline 不能保证原子性 - Pipeline 只是将客户端发送命令的方式改为批量发送,而服务端在接收到 Pipeline 发来的命令后,将其拆解为一条条命令,然后依然是串行执行。执行过程中,服务端有可能执行其他客户端的命令,所以无 阅读全文
posted @ 2024-07-26 23:20 李若盛开 阅读(107) 评论(0) 推荐(0) 编辑
摘要:一. 简介 where 对查询数据进行过滤 having 用于对已分组的数据进行过滤【having和group by 必须配合使用(有having必须出现group by)】 二. 用法 where select * from table where sum(字段)>100 having selec 阅读全文
posted @ 2024-07-26 22:20 李若盛开 阅读(338) 评论(0) 推荐(0) 编辑
摘要:在游戏中,组队匹配机制是一种常见的玩法,它允许玩家们通过组队来增强游戏体验。这种机制的设计需要考虑到各种因素,包括玩家的技能水平、游戏难度、队伍规模等,接下来探讨这种机制的设计过程。 1. 玩家能力评估 首先,设计者需要了解每个玩家的能力,这包括他们的技能水平、角色等级、装备状况等。在游戏设计之初, 阅读全文
posted @ 2024-07-24 13:15 李若盛开 阅读(745) 评论(0) 推荐(0) 编辑
摘要:1、了解倒排索引的基本概念 1.1、倒排索引是什么 倒排索引是一种用于全文搜索的数据结构,它将文档中的每个单词映射到包含该单词的所有文档的列表中,然后用该列表替换单词。因此,倒排索引在文本搜索和信息检索中广泛应用,如搜索引擎、网站搜索、文本分类等场景中。 具体来说,一个倒排索引包含一个词语词典和每个 阅读全文
posted @ 2024-07-24 13:09 李若盛开 阅读(379) 评论(0) 推荐(0) 编辑
摘要:在推送的时候会遇到这样的问题,这句话的意思是:是因为远程repository和本地的repository冲突导致的。解决方法:重新拉取一下代码 阅读全文
posted @ 2024-07-24 10:11 李若盛开 阅读(244) 评论(0) 推荐(0) 编辑
摘要:ACID 中关于原子性的定义: 原子性:一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。即,事务不可分割、不可约简。 Redis事务不支持传 阅读全文
posted @ 2024-07-21 23:48 李若盛开 阅读(37) 评论(0) 推荐(0) 编辑
摘要:match 和 term 查询是两种常用的查询方式,在用途和行为上有着显著的差异: 1. match 查询【实际底层就是多个term查询的结果给汇合在一起】全文搜索:match 查询用于全文搜索场景。它在查询之前对字段值和查询字符串进行分词(tokenization)处理。 分析器(Analyzer 阅读全文
posted @ 2024-07-21 23:15 李若盛开 阅读(504) 评论(0) 推荐(0) 编辑
摘要:什么是相关性 相关度是指两个事物间相互关联的程度,在检索领域特指检索请求与检索结果之间的相关程度。默认情况下,返回结果是按相关性倒序排列的。 但什么是相关性? 相关性如何计算? 每个文档都有相关性评分,用一个正浮点数字段 _score 来表示 。 _score 的评分越高,相关性越高。 查询语句会为 阅读全文
posted @ 2024-07-21 23:06 李若盛开 阅读(101) 评论(0) 推荐(0) 编辑
摘要:ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使 阅读全文
posted @ 2024-07-21 17:55 李若盛开 阅读(597) 评论(0) 推荐(0) 编辑
摘要:ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可 阅读全文
posted @ 2024-07-21 12:32 李若盛开 阅读(16) 评论(0) 推荐(0) 编辑
摘要:本文从网络模型、数据结构和内存管理、持久化和多机协作四个角度对redis的设计思路进行分析。 一.网络模型 Redis是典型的基于Reactor的事件驱动模型,单进程单线程,高效的框架总是类似的。网络模型与spp的异步模型几乎一致。 Redis流程上整体分为接受请求处理器、响应处理器和应答处理器三个 阅读全文
posted @ 2024-07-18 23:48 李若盛开 阅读(33) 评论(0) 推荐(0) 编辑
摘要:需求:输入一个多单词的字符串,反转得到新的字符串。 比如:输入"hello world" ,输出"world hello" package main import ( "fmt" "strings" ) func reverseWords(s string) string { // 使用string 阅读全文
posted @ 2024-07-18 00:40 李若盛开 阅读(10) 评论(0) 推荐(0) 编辑
摘要:String类型:一个String类型的value最大可以存储512MHash类型:键值对个数最多为2^32-1个,也就是4294967295个(40多亿) List类型:list的元素个数最多为2^32-1个,也就是4294967295个(40多亿) Set类型:元素个数最多为2^32-1个,也就 阅读全文
posted @ 2024-07-17 19:50 李若盛开 阅读(761) 评论(0) 推荐(0) 编辑
摘要:一、Redis数据结构 Redis支持五种主要数据结构:字符串(String)、列表(List)、哈希表(Hash)、集合(Set)和有序集合(Sorted Set)。这些数据结构为开发者提供了灵活的数据操作方式,满足了不同场景下的数据存储需求。 字符串(String):最基本的数据类型,可以包含任 阅读全文
posted @ 2024-07-16 20:36 李若盛开 阅读(621) 评论(0) 推荐(0) 编辑
摘要:基本分析 在 Go 底层源码 src/runtime/map.go 中,扩缩容的处理方法是 grow 为前缀的方法来处理的。 其中扩缩容涉及到的是插入元素的操作,对应 mapassign 方法: func mapassign(t *maptype, h *hmap, key unsafe.Point 阅读全文
posted @ 2024-07-16 13:13 李若盛开 阅读(99) 评论(0) 推荐(1) 编辑
摘要:什么是幂等性 接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致,不会因为多次点击而产生了副作用。 什么场景需要幂等性设计 一般对数据要求比较高的场景,如:金钱交易(对数据一致性至关重要)的业务场景: 在线支付:当用户发起支付请求时,避免重复扣款。 银行交易:确保同一笔交易不会因网 阅读全文
posted @ 2024-07-15 02:22 李若盛开 阅读(66) 评论(0) 推荐(0) 编辑
摘要:什么是 MongoDB MongoDB 是基于 C++ 开发的 NOSQL 开源文档数据库 ,是最像关系型数据库的 nosql,功能也是最丰富的 nosql,它具有所以的可伸缩性,灵活性,高性能,高扩展性的优势。 大致有如下特性: 面向集合文档的存储,存储 Bson (json的扩展) 格式自由,数 阅读全文
posted @ 2024-07-15 01:28 李若盛开 阅读(247) 评论(0) 推荐(0) 编辑
摘要:一. 高并发 高并发是现在互联网分布式框架设计必须要考虑的因素之一,它是可以保证系统能被同时并行处理很多请求,对于高并发来说,它的指标有: 响应时间:系统对进来的请求反应的时间,比如你打开一个页面需要1秒,那么这1秒就是响应时间。 吞吐量:吞吐量是指每秒能处理多少请求数量,好比你吃饭,每秒能吃下多少 阅读全文
posted @ 2024-07-15 00:13 李若盛开 阅读(68) 评论(0) 推荐(0) 编辑
摘要:一、传统 IF 判断 1、在业务中使用大量的 if 判断 代码如下: package main type SellInfo struct { Price float64 OrderCount int TotalCount int MemberShip int } func main2() { var 阅读全文
posted @ 2024-07-14 20:27 李若盛开 阅读(53) 评论(0) 推荐(0) 编辑
摘要:在现代 CPU 架构中,分支预测是为了提高指令执行的效率。然而,如果 if/else 语句的分支走向难以预测,就可能会降低程序效率。这是因为当 CPU 执行到 if/else 语句时,它需要猜测接下来要执行的是 if 分支还是 else 分支。如果 CPU 的预测错误,就需要清空已经预取和执行的部分 阅读全文
posted @ 2024-07-14 20:16 李若盛开 阅读(153) 评论(0) 推荐(0) 编辑
摘要:短链服务的好处 缩短地址长度,留足更多空间的给有意义的内容 URL是没有意义的,有的原始URL很长,占用有效的屏幕空间。 可以很好的对原始URL内容管控。 有一部分网址可以会涵盖XX,暴力,广告等信息,这样可以通过用户的举报,完全管理这个连接将不出现在应用中,应为同样的URL通过加密算法之后,得到的 阅读全文
posted @ 2024-07-14 13:33 李若盛开 阅读(104) 评论(0) 推荐(0) 编辑
摘要:一、K8S 概览 1)K8S 是什么? K8S 是Kubernetes的全称,源于希腊语,意为“舵手”或“飞行员”,官方称其是:用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。翻译成大白话就是:“K8S 是负责自动化运维管理多个跨机器 Docker 程序的集群”。 阅读全文
posted @ 2024-07-14 00:24 李若盛开 阅读(2269) 评论(0) 推荐(1) 编辑
摘要:1、概念: 1)QPS(Queries Per Second): 每秒查询率,即每秒的响应请求数,也就是最大吞吐能力。指一台服务器每秒能够响应的查询次数,用于衡量特定的查询服务器在规定时间内所处理流量多少,主要针对专门用于查询的服务器的性能指标,比如dns,它不包含复杂的业务逻辑处理,比如数据库中的 阅读全文
posted @ 2024-07-12 18:46 李若盛开 阅读(133) 评论(0) 推荐(0) 编辑
摘要:大多数前端程序员,在通过浏览器F12的调试工具调试网络请求时,可能都会有一个发现,在进行POST请求时明明代码里只请求了一次,为什么network里发送了两次呢,难道代码出bug了?带着疑问点开第一个请求才发现,原来第一个是OPTIONS类型的请求,第二个才是代码里写的POST类型的请求。为什么PO 阅读全文
posted @ 2024-07-12 10:04 李若盛开 阅读(247) 评论(0) 推荐(0) 编辑
摘要:windows-386 :这些是针对 32 位 Windows 系统编译的。windows-amd64 :这些是针对具有 AMD 或 Intel x86-64 架构的 64 位 Windows 系统编译的。windows-arm64 :这些是针对具有 ARM 架构的 64 位 Windows 系统编 阅读全文
posted @ 2024-07-07 22:20 李若盛开 阅读(5636) 评论(0) 推荐(0) 编辑
摘要:一.介绍 merge 和 rebase 都是 Git 中用于合并分支的命令,但它们的合并方式和结果略有不同。 1)merge 命令的作用是将两个分支合并成一个新的提交,新的提交有两个父提交。这种合并方式会创建一个新的提交,它包含了被合并的分支的所有更改。这样就可以将两个不同的分支中的代码变更合并到一 阅读全文
posted @ 2024-07-02 14:14 李若盛开 阅读(3715) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示