<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qixiang2013的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/qixiang2013</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qixiang2013]]></copyright><item><title><![CDATA[Visual Studio 快捷键更改和设置]]></title><link>https://blog.csdn.net/qixiang2013/article/details/147744902</link><guid>https://blog.csdn.net/qixiang2013/article/details/147744902</guid><author>qixiang2013</author><pubDate>Tue, 06 May 2025 18:17:08 +0800</pubDate><description><![CDATA[2.移除老的快捷键移除冲突的快捷键。]]></description><category></category></item><item><title><![CDATA[gdb 源码安装]]></title><link>https://blog.csdn.net/qixiang2013/article/details/147591555</link><guid>https://blog.csdn.net/qixiang2013/article/details/147591555</guid><author>qixiang2013</author><pubDate>Mon, 28 Apr 2025 17:08:01 +0800</pubDate><description><![CDATA[去网站下载gdbmake -j10。]]></description><category></category></item><item><title><![CDATA[ld: warning: libssl.so.10, needed by libmysqlclient.so may conflict with libssl.so.1.1]]></title><link>https://blog.csdn.net/qixiang2013/article/details/147457889</link><guid>https://blog.csdn.net/qixiang2013/article/details/147457889</guid><author>qixiang2013</author><pubDate>Wed, 23 Apr 2025 16:48:59 +0800</pubDate><description><![CDATA[原因:  就是mysql连接器需要libssl.so.10 ,但是工程依赖更新的 libssl.so.1.1。解决办法: 重新编译libmysqlclient.so.24.0.4 依赖 libssl.so.1.1。find 命令可以查找最新产生的ibmysqlclient.so ,引用到工程就可以了。如果报错什么openssl版本。]]></description><category></category></item><item><title><![CDATA[redis-7 安装]]></title><link>https://blog.csdn.net/qixiang2013/article/details/147396773</link><guid>https://blog.csdn.net/qixiang2013/article/details/147396773</guid><author>qixiang2013</author><pubDate>Mon, 21 Apr 2025 16:59:49 +0800</pubDate><description><![CDATA[pkg-config --modversion hiredis ,看版本号,如果不能输出修改环境变量。下面是安装hiredis-devel。修改redis.conf。]]></description><category></category></item><item><title><![CDATA[git 升级]]></title><link>https://blog.csdn.net/qixiang2013/article/details/147323633</link><guid>https://blog.csdn.net/qixiang2013/article/details/147323633</guid><author>qixiang2013</author><pubDate>Fri, 18 Apr 2025 11:04:31 +0800</pubDate><description><![CDATA[【代码】git 升级。]]></description><category></category></item><item><title><![CDATA[git 创建第一个项目]]></title><link>https://blog.csdn.net/qixiang2013/article/details/147320307</link><guid>https://blog.csdn.net/qixiang2013/article/details/147320307</guid><author>qixiang2013</author><pubDate>Fri, 18 Apr 2025 09:31:40 +0800</pubDate><description><![CDATA[我们通常在内网环境搭建自己的GitLab服务器，这里我们以Ubuntu20.04为例讲解GitLab的安装过程。]]></description><category></category></item><item><title><![CDATA[图解git工作原理]]></title><link>https://blog.csdn.net/qixiang2013/article/details/147312337</link><guid>https://blog.csdn.net/qixiang2013/article/details/147312337</guid><author>qixiang2013</author><pubDate>Thu, 17 Apr 2025 19:27:43 +0800</pubDate><description><![CDATA[repository：本地仓库，安全存放数据的位置，这里有开发者提交所有版本的数据。remote repository: 远程仓库，托管代码的服务器  团队都能访问的公告远程服务器（如github）git 是一个能处理各种大小项目的开源版本控制系统，本文想通过两张图来简单说明git的工作原理。以上三个区域又是存储在我们各自工作的本地PC上，git通过.git/目录下的文件进行记录管理。git操作都是围绕着这四个区域来进行的，只有理解了这四者的关系才能更好理解各个命令的功能。]]></description><category></category></item><item><title><![CDATA[goland 断点调试的问题]]></title><link>https://blog.csdn.net/qixiang2013/article/details/146225752</link><guid>https://blog.csdn.net/qixiang2013/article/details/146225752</guid><author>qixiang2013</author><pubDate>Thu, 13 Mar 2025 11:10:07 +0800</pubDate><description><![CDATA[因依赖问题要求GO版本需要从1.18.x版本升级到1.23.x，升级后，Test 启动 debug时，发现打断点的红点一闪而过，出现一个失效的标志（一个灰色圆圈+斜杠），在经过百度大法后，原来高版本（1.20及以上版本）会出现debug断点无效的现象。经过资料查阅，发现是因为go高版本问题，导致dlv插件失效，github上提供了源代码，可以clone下来打包，并把dlv文件放到指定的目录。goland 新版本（大于等于23年版本）goland 新版本（大于等于23年版本）最后一步 重启goland。]]></description><category></category></item><item><title><![CDATA[快慢指针.原地删除数组重复项]]></title><link>https://blog.csdn.net/qixiang2013/article/details/144542788</link><guid>https://blog.csdn.net/qixiang2013/article/details/144542788</guid><author>qixiang2013</author><pubDate>Tue, 17 Dec 2024 19:29:50 +0800</pubDate><description><![CDATA[【代码】快慢指针.原地删除数组重复项。]]></description><category></category></item><item><title><![CDATA[core 文件不生成原因,没有产生core使用addr2line日志排查原因]]></title><link>https://blog.csdn.net/qixiang2013/article/details/143803055</link><guid>https://blog.csdn.net/qixiang2013/article/details/143803055</guid><author>qixiang2013</author><pubDate>Fri, 15 Nov 2024 16:52:59 +0800</pubDate><description><![CDATA[linux下寻找段错误的方法 - 空水 - 博客园]]></description><category></category></item><item><title><![CDATA[valgrind 工具helgrind使用]]></title><link>https://blog.csdn.net/qixiang2013/article/details/141367095</link><guid>https://blog.csdn.net/qixiang2013/article/details/141367095</guid><author>qixiang2013</author><pubDate>Tue, 20 Aug 2024 19:54:05 +0800</pubDate><description><![CDATA[valgrind --tool=helgrind --log-file=./valgrind.log ./game_50]]></description><category></category></item><item><title><![CDATA[启用交换内存swap]]></title><link>https://blog.csdn.net/qixiang2013/article/details/141199138</link><guid>https://blog.csdn.net/qixiang2013/article/details/141199138</guid><author>qixiang2013</author><pubDate>Wed, 14 Aug 2024 20:01:51 +0800</pubDate><description><![CDATA[现在我们知道了可用的存储空间，我们可以开始在文件系统中创建一个交换文件。我们将在根目录（/）中创建一个名为 swapfile 的文件，当然，如果你愿意，也可以给文件取其他名字。文件必须分配我们想要的交换文件空间的大小，并且应该在一个连续的块中创建。在这之前，我们应该调整交换文件的权限，以便除了 root 帐户之外的任何人都无法读取。目前我们的交换文件已启用，但当我们重新启动时，服务器将不会自动启用该文件以供使用。目前，我们的文件已经创建，但系统不知道这个文件应该用作交换空间。添加完毕后，保存并关闭文件。]]></description><category></category></item><item><title><![CDATA[asyn 使用]]></title><link>https://blog.csdn.net/qixiang2013/article/details/141021740</link><guid>https://blog.csdn.net/qixiang2013/article/details/141021740</guid><author>qixiang2013</author><pubDate>Thu, 08 Aug 2024 11:15:44 +0800</pubDate><description><![CDATA[std::future仅在创建它的std::promise(或者std::async、std::packaged_task)有效时才有用，所以可以在使用前用valid()判断。std::promise负责存储， std::promise也是一个模板类，它提供了存储异步执行结果的值和异常的一种方式。std::future负责访问，std::promise负责存储，同时promise是future的管理者。std::promise 对象可以保存某一类型 T 的值。future 对象读取（可能在另外一个线程中）]]></description><category></category></item><item><title><![CDATA[asan 使用]]></title><link>https://blog.csdn.net/qixiang2013/article/details/140827814</link><guid>https://blog.csdn.net/qixiang2013/article/details/140827814</guid><author>qixiang2013</author><pubDate>Wed, 31 Jul 2024 17:13:17 +0800</pubDate><description><![CDATA[【代码】asan 使用。]]></description><category></category></item><item><title><![CDATA[跳表啊啊啊啊]]></title><link>https://blog.csdn.net/qixiang2013/article/details/132610639</link><guid>https://blog.csdn.net/qixiang2013/article/details/132610639</guid><author>qixiang2013</author><pubDate>Tue, 23 Jul 2024 12:33:18 +0800</pubDate><description><![CDATA[查找: 红黑树查找操作的时间复杂度在最坏情况下为O(logn)红黑树在查找单个节点时效率很高，但如果需要按照区间查找数据,比不上跳表。对比平衡树, 跳表的实现和维护会更加简单, 跳表的搜索、删除、添加的平均时间复杂度是 O(logn)跳表在原来的有序链表上加上了多级索引，通过索引来快速查找；跳表，又叫做跳跃表、跳跃列表，在有序链表的基础上增加了“跳跃”的功能。跳表实际上是一种增加了前向指针的链表，是一种随机化的数据结构。按每两个节点生成一个索引，则有第一层索引节点的个数为n/2。2. 空间复杂度O(n)]]></description><category></category></item><item><title><![CDATA[VMware虚拟机扩充硬盘]]></title><link>https://blog.csdn.net/qixiang2013/article/details/140204818</link><guid>https://blog.csdn.net/qixiang2013/article/details/140204818</guid><author>qixiang2013</author><pubDate>Fri, 05 Jul 2024 12:07:39 +0800</pubDate><description><![CDATA[通过VMware构建虚拟机，使用一段时间后发现虚拟机硬盘空间不足，需要在VMware虚拟机中添加新的硬盘并挂载到指定目录下。再次查看磁盘情况，/dev/sdb1说明分区成功，名称是你磁盘名称+设置的分区号。2、对磁盘进行分区，如果磁盘名称不是 /dev/sdb请根据实际名称修改。3、选择虚拟机磁盘类型SCSI(S)，点击下一步。5、将分区挂载信息添加到/etc/fstab。6、开始挂载新分区到创建的指定目录。4、创建新虚拟磁盘，点击下一步。4、创建需要将磁盘挂载到的目录。2、选择硬盘，然后点击下一步。]]></description><category></category></item><item><title><![CDATA[一致性哈希算法原理详解]]></title><link>https://blog.csdn.net/qixiang2013/article/details/139833099</link><guid>https://blog.csdn.net/qixiang2013/article/details/139833099</guid><author>qixiang2013</author><pubDate>Thu, 20 Jun 2024 15:03:36 +0800</pubDate><description><![CDATA[一、普通 hash 算法 (取模算法)：在了解一致性哈希算法之前，我们先了解一下缓存中的一个应用场景，了解了这个应用场景之后，再来理解一致性哈希算法，就容易多了，也更能体现出一致性哈希算法的优点，那么，我们先来描述一下这个经典的分布式缓存的应用场景。1、普通 hash算法 与 使用场景描述：假设我们有三台缓存服务器，用于缓存图片，我们为这三台缓存服务器编号为 0号、1号、2号，现在有3万张图片需要缓存，我们希望这些图片被均匀的缓存到这3台服务器上，以便它们能够分摊缓存的压力。]]></description><category></category></item><item><title><![CDATA[定时器实现数据结构比较]]></title><link>https://blog.csdn.net/qixiang2013/article/details/135744919</link><guid>https://blog.csdn.net/qixiang2013/article/details/135744919</guid><author>qixiang2013</author><pubDate>Mon, 22 Jan 2024 16:28:53 +0800</pubDate><description><![CDATA[大小堆：大小堆的插入和删除操作相对简单，主要涉及上浮（向上调整）和下沉（向下调整）操作，以维护堆的性质。1. 红黑树获得最小值的时间复杂度是O(h), 最小堆的是O(1),因为最小值永远是根节点.红黑树：红黑树的插入和删除操作相对复杂，需要根据红黑树的性质进行调整和旋转，以保持平衡性。2.红黑树相同的时间定时任务,后面需要挂一个桶 类似mutilmap。]]></description><category></category></item><item><title><![CDATA[地图移动逻辑]]></title><link>https://blog.csdn.net/qixiang2013/article/details/135511739</link><guid>https://blog.csdn.net/qixiang2013/article/details/135511739</guid><author>qixiang2013</author><pubDate>Wed, 10 Jan 2024 20:08:43 +0800</pubDate><description><![CDATA[之前经常发生进行同步的时候，第三方客户端上的角色最终停止的位置会比主客户端多走了几步的问题，这时因为对最后一个同步坐标也做了预测的缘故。做预测, 在没有收到下一个同步点的时候，客户端自己做一个位移预测，让角色保持位移的状态，客户端简单地认为角色会保持当前的位移方向和速度继续运动（事实上也确实是保持运动状态的情况居多，变化居少）会有收到最后一个点的时候，角色已经做了预测，并且走超了的情况，这种情况只能按照终点坐标做一个会拉的操作了，或者客户端设定了预测上限，在偏差值不大的情况下允许这种偏差存在也可以。]]></description><category></category></item><item><title><![CDATA[内网穿透工具frpc ,流量代理]]></title><link>https://blog.csdn.net/qixiang2013/article/details/134994054</link><guid>https://blog.csdn.net/qixiang2013/article/details/134994054</guid><author>qixiang2013</author><pubDate>Thu, 14 Dec 2023 14:09:53 +0800</pubDate><description><![CDATA[svn: //123.207.61.13:9227 就行了。]]></description><category></category></item></channel></rss>