自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Redis设计与实现-05-跳跃表

跳跃表介绍原书中并没有对跳跃表做详细的介绍,记录下来的信息为自己整理。参考https://www.cnblogs.com/thrillerz/p/4505550.htmlhttps://redisbook.readthedocs.io/en/latest/internal-datastruct/skiplist.html跳跃表概念跳跃表是在有序链表的基础上进行扩展,解决有序链表查找困难的问题。有序链表查找的时间复杂度为O(n)跳跃表查找的时间复杂度为O(longN)跳跃表的结构

2020-05-23 16:47:21 194

原创 mysql无法添加外键约束(cannot add foreign key constraint)

如果有varchar字段,字符集和校对规则也需要保持一致

2020-05-21 19:59:20 385

原创 Redis设计与实现-04-字典

哈希表(hash table):又叫散列表,是根据关键码值进行访问的数据结构。将关键码值映射到表中的一个位置来访问,以加快查找的速度。这个函数映射叫做哈希函数,存放记录的数组叫做散列表。哈希表常用于通过key快速的找到对应的value时使用。哈希表的负载因子等于实际元素数目/哈希表的容量,负载因子越大表示冲突越大,负载因子越小,表示空间越浪费。一般负载因子位于0-0.7。哈希算法:当将一个新的键值对添加到字典里面时,先根据键值对的键计算出哈希值和索引值,然后根据索引值,将包含新键值对的哈希表节点放到.

2020-05-17 16:57:59 177

原创 Redis设计与实现-03-链表

Redis链表的特性双端无环带表头指针和表尾指针带链表长度计数器多态typedef struct list { // 表头节点 listNode *head; // 表尾节点 listNode *tail; // 链表中所有节点的数量 unsigned long len; // 节点复制函数 void *(*dup)(void *ptr); // 节点释放函数 void (*free)(void *ptr).

2020-05-17 16:57:11 156

原创 Redis设计与实现-02-数据结构与对象

简单动态字符串Redis构建了一种名为简单动态字符串(simple dynamic string, SDS)的抽象类型,作为默认字符串表示。SDS遵循C字符串以空字符结尾的惯例,保存空字符的一个字节空间不计算在SDS的len属性里面,并且为空字符分配额外的一个字节,以及添加空字符到字符串末尾等操作,都是由SDS函数自动完成的,所以空字符对SDS的使用者来说是完全透明的。struct sdshr { // 记录buf数组中已使用字节的数量 // 等于sds所保存字符串的长度

2020-05-10 19:09:39 233

原创 Redis设计与实现-01-引言

Redis数据库里面的每个键值对(key-value pair)都是由对象(object)组成的,其中数据库键总是一个字符串对象(string)数据库键的值则可以是字符串对象、列表对象(list)、哈希对象(hash)、集合对象(set)、有序集合(sorted set )对象这五种对象中的其中一种。...

2020-05-10 19:08:21 176

原创 MongoDB(Motor) cursor id is not valid at server 问题

MongoDB(Motor) cursor id is not valid at server 问题Python使用Motor驱动操作MongoDB导出数据时遇到cursor id is not valid at server的问题,主要是因为Cursor空闲时间超过10分钟被服务器回收。可以通过以下两个参数来解决这个问题:no_cursor_timeout :设置cursor没有超时时间。...

2020-05-04 10:47:48 311

原创 ubuntu 修改时间无效

使用 date -s 对ubuntu进行时间修改,命令执行成功,但紧接着查询时时间又被还原。有两种可能1. 系统启用ntp服务使用 service ntp status 命令来查看ntp服务的状态,如果启动了ntp服务,使用service ntp stop命令来关闭该服务。2. timedatectl 启动了set-ntp使用timedatectl来观察是否启用了set-ntp;如...

2019-09-29 17:49:11 3230

转载 std::thread类成员函数作为线程函数

https://blog.csdn.net/qq_41741165/article/details/80584066

2019-08-21 18:16:57 2996

原创 C++中具有命名空间的类如何前置声明

namespace acl{ class redis_client;}

2019-08-19 19:58:56 820

原创 Android Studio 3.2 的android 模拟器启动黑屏问题解决

参考https://blog.csdn.net/nny886/article/details/83073695问题描述使用Android Studio新创建的模拟器可以正常使用,当重新启动Android Studio之后,模拟器可以启动,但一直黑屏(也没有显示Android字样)修改方法在模拟器编辑界面,点击“Show Advanced Settings”按钮,显示详细配置,修改“B...

2019-08-07 12:35:54 1971 1

原创 错误: 编码GBK的不可映射字符问题解决

问题产生在Windows中使用javah将.java文件转换为.h文件时报错“错误: 编码GBK的不可映射字符”解决方法使用javah时添加-encoding UTF-8参数,其中UTF-8为.java文件使用的编码。如果.java文件是其他编码格式,需要将UTF-8修改为对应的编码名称问题分析windows平台javah默认认为.java文件为GBK编码。如果不指定-encoding参...

2019-08-06 12:27:18 373

转载 vs2015下release版本调试设置

设置在Release模式下调试的方法:1.工程项目上右键 -> 属性2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)3.c++ -> 优化 -〉优化 选 禁止(/Od)4.连接器 -〉调试 -〉生成调试信息 选 是 (/DEBUG)...

2019-06-12 13:14:02 2239

原创 Win10 64位操作系统中编译nginx

参考如下信息http://nginx.org/en/docs/windows.htmlhttp://nginx.org/en/docs/howto_build_on_win32.htmlhttps://blog.csdn.net/pi314pi/article/details/81167814环境准备已安装VS2010的Win10电脑一台安装ActivePerl。这个是为了编译o...

2019-01-24 14:38:42 819

原创 enable_if 的一个奇怪用法

enable_if 模板

2017-10-14 09:36:27 1352

原创 C++模板的具体化和实例化

模板类或模板函数并不是真正的类或函数,它们是编译器指令,说明如何生成类或函数,模板的具体实现可以分为实例化(instantiation)和具体化(specialization)模板实例化  模板的实例化分为显示实例化和隐式实例化,前者是研发人员明确的告诉模板应该使用什么样的类型去生成具体的类或函数,后者是在编译的过程中由编译器来决定使用什么类型来实例化一个模板  不管是显示实例化或隐式实例化,最终生

2017-10-14 08:23:53 851

原创 FFmpeg 使用HEVC_QSV编码时仅发送一次PPS问题的解决方法

使用最新版本的(3.2.1)的FFmpeg进行HEVC_QSV编码的时候,只会在开始的时候发送一次PPS,在之后的编码过程中都不在发送PPS,这导致了需要播流的播放器需先打开,再启动FFmpeg进行推流,否则只能播放出声音,没有画面。       FFmpeg 是基于Intel Media SDK来实现HEVC_QSV的,查看了Intel Media SDK的相关文档,发现PPS的发送时机是由

2017-03-19 08:22:48 3266 7

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除