redis源码分析(3)链表adlist.c

摘要: adlist.c可以说是一个比较经典的双端链表,熟悉链表的话应该很快就能读懂。 数据结构都比较好懂。 创建一个新的链表: 释放链表: 头插 尾插 创建一个新的值为value的节点,插入到指定节点old_node之前或者之后。 删除指定节点 创建和释放迭代器: 重置迭代器的方向和起点: 返回迭代器当前 阅读全文
posted @ 2019-09-23 17:38 长岛的雪 阅读(194) 评论(0) 推荐(0) 编辑

动态内存分配

摘要: 堆是一段长度可变的连续虚拟内存。始于BBS段的末尾,随着内存的分配和释放而增减,堆的当前内存边界成为 program break linux提供的系统调用:brk()和sbrk()。 brk将program break设置为参数end_data_segment所指定的位置,由于虚拟内存分配以页为单位 阅读全文
posted @ 2019-09-05 16:55 长岛的雪 阅读(301) 评论(0) 推荐(0) 编辑

C++string类,如果中间加个‘/0’,会不会影响长度计算。

摘要: 今天看redis源码的时候,觉得sds有点像C++中的string。在C语言字符数组中,如果中间有‘/0’,计算长度就会只计算'/0'前的字符。 SDSHDR结构体加了一个len长度来记录长度,解决了这个问题,使得sds不仅可以存储文本,还可以存储二进制。 突发奇想string会不会也是这样,事实证 阅读全文
posted @ 2019-08-22 17:15 长岛的雪 阅读(1943) 评论(0) 推荐(0) 编辑

redis源码分析(2)字符串sds.c

摘要: sds是一个char*的类型别名 可以把这个结构体和对应操作函数类比为C++中STL的string类。 因此可知,如果传入buf的地址s,该结构体的地址就是s-sizeof(struct sdshdr); 这两个函数比较好理解,当传入的sds类型而非普通字符数组时,求sds的现有长度和sds的可用长 阅读全文
posted @ 2019-08-22 17:11 长岛的雪 阅读(282) 评论(0) 推荐(0) 编辑

django从零开始(2)models与数据库

摘要: 1.配置数据库 2.激活模型 让当前工程包含当前app 如果不添加的话会发生以下错误 3. makemigrations会在当前目录下生成一个migrations文件夹,该文件夹的内容就是数据库要执行的内容 python manage.py makemigrations migrate就是执行之前生 阅读全文
posted @ 2019-07-26 18:04 长岛的雪 阅读(115) 评论(0) 推荐(0) 编辑

django从零开始(1)创建一个最简单的index

摘要: 1.创建项目 django-admin startproject redistest 2.创建app python manage.py startapp vote 3.添加url解析 在app文件夹中添加一个urls.py文件,并输入以下内容。 在项目文件夹中的urls添加解析 在views中添加一 阅读全文
posted @ 2019-07-26 17:26 长岛的雪 阅读(1008) 评论(0) 推荐(0) 编辑

redis源码分析(1)内存管理zmalloc

摘要: 总体来说,zmalloc根据平台不同加了一层封装,可以维护已申请的总共堆内存的大小。 PREFIX_SIZE是一个预留量,用于存储当前分配内存的大小。 在linux下,PREFIX_SIZE大小为8 1.分配时会多分配PREFIX_SIZE。 2.将多分配出来的地方写入大小,但是这个大小不包括PRE 阅读全文
posted @ 2019-07-23 10:13 长岛的雪 阅读(222) 评论(0) 推荐(0) 编辑

解决mysql8.0不能远程连接的问题

摘要: https://blog.csdn.net/qq_32448349/article/details/82428696 阅读全文
posted @ 2019-07-11 19:13 长岛的雪 阅读(3618) 评论(0) 推荐(0) 编辑

python3 django连接mysql 数据库

摘要: 详情参考: https://blog.csdn.net/weixin_33127753/article/details/89100552 https://imshusheng.com/python/216.html 报错环境 python=3.6,django=2.2,PyMySQL=0.9.3…… 阅读全文
posted @ 2019-07-11 18:58 长岛的雪 阅读(412) 评论(0) 推荐(0) 编辑

centos安装python3

摘要: sudo yum install epel-release yum list | grep python3 yum install python36 yum install python36-pip pip install django 阅读全文
posted @ 2019-07-11 16:24 长岛的雪 阅读(129) 评论(0) 推荐(0) 编辑