自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

溯夜,逆流而上

到底什么是真正的幸福呢?我也说不清楚,其实无论遇到多么痛苦艰难的事,就算爬高山也好,下斜坡也好 ,只要能走正确的道路, 就能一步步接近幸福

  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis源码分析与思考(六)——整数集合

intset,即整数集合。整数集合是Redis集合键的底层实现之一,当集合中只函数整数元素,且整数元素个数不多时,Redis会采用整数集合来实现集合键。

2018-09-29 21:04:31 171

原创 微信小程序自定义二维码分享图--Canvas画图及注意事项

微信小程序自定义二维码分享图--Canvas画图,图片缓存及注意事项

2018-09-29 15:01:26 6174 1

原创 redis源码分析与思考(五)——跳跃表

在计算机科学领域,跳跃链表是一种数据结构,允许快速查询一个有序连续元素的数据链表。快速查询是通过维护一个多层次的链表,且每一层链表中的元素是前一层链表元素的子集。一开始时,算法在最稀疏的层次进行搜索,直至需要查找的元素在该层两个相邻的元素中间。这时,算法将跳转到下一个层次,重复刚才的搜索,直到找到需要查找的元素为止。

2018-09-27 17:41:14 183

原创 redis源码分析与思考(四)——字典遍历与reverse binary iteration算法

在进行字典的遍历时,有着许多的问题去解决。最难处理的点就是如何在rehash的途中有效率的、不遗漏的遍历全部的哈希节点,因为在此时每个哈希节点的地址与索引都是不确定的。在Redis中,其作者基于reverse binary iteration算法来实现的,直译过来就是反转二进制迭代算法,而且实现的非常精妙,Redis之父==Salvatore Sanfilippo==对其的评价是” Hard to explain but awesome.”

2018-09-25 21:52:42 615

原创 redis源码分析与思考(三)——字典中键的两种hash算法

在Redis字典中,得到键的hash值显得尤为重要,因为这个不仅关乎到是否字典能做到负载均衡,以及在性能上优势是否突出,一个良好的hash算法在此时就能发挥出巨大的作用。而一个良好的hash算法往往倾向于把不同的实例分配在不同的散列值上。在Redis中,实现键的哈希值有两种算法实现,一种是djb2算法,另一种就是MurmurHash2算法。

2018-09-23 18:14:29 435

原创 redis源码分析与思考(二)——链表与字典

 链表  关于链表,我们并不陌生,在数据结构里早已接触过,所以在这只是简单的描述下Redis中链表的一些特征。在Redis中,使用链表作为列表键的底层实现之一,而且在发布与订阅、慢查询等功能上也用到了链表。  链表的定义与实现是在adlist.h与adlist.c两个文件中,先看Redis中链表的节点与链表本身的定义://链表节点typedef struct listNode {...

2018-09-21 11:36:58 207

转载 c中malloc、calloc、recalloc用法

转载自https://www.cnblogs.com/klchang/p/5719470.htmlC标准函数库中,常见的堆上内存管理函数有malloc(), calloc(), recalloc(), free()。之所以使用堆,是因为栈只能用来保存临时变量、局部变量和函数参数。在函数返回时,自动释放所占用的存储空间。而堆上的内存空间不会自动释放,直到调用free()函数,才会释放堆上的存...

2018-09-19 10:22:56 3828

原创 redis源码分析与思考(一)——sds

  在阅读黄健宏的书《Redis设计与实现》的时候,深刻的意识到仅仅看别人的作品是远远不够,自己更应该去阅读源码,形成自己的思考,这样才算真正的学进去了。  现如今,Nosql的概念大行其道,redis作为其中的佼佼者被广大的开发者爱好着,而且Redis的源码仅仅只有三万多行,作为一名喜爱开源技术以及新技术的人来说,Redis源码无疑是值得每个开发者阅读的。  在Redis中,即使源码是由...

2018-09-18 18:21:12 298 1

转载 Linux系统远程连接

安装rdesktop 1 sudo apt update2 sudo apt install rdesktop -y使用方法1 #rdesktop ip地址:端口号 -u 远程主机用户名2 rdesktop 127.0.0.0.1:3389 -u guest端口号是对应主机可以访问的端口连接最简单的情况,如果你要连接到的Windows机器的IP地址是a.b.c....

2018-09-11 18:24:24 207

原创 利用回调实现伪监听

在有延迟的加载某项事物时,利用回调往往能起到很好的展现代码清晰度的作用,比如网络的获取:首先定义一个网络请求类: public class CreateRoomRequest extends BaseRequest {    private GetService request;    public static class CreateRoomParam {        p...

2018-09-11 18:11:47 217

原创 Android图片加载库

1.Glide网络图片加载库添加依赖:compile 'com.github.bumptech.glide:glide:3.7.0'compile 'jp.wasabeef:glide-transformations:2.0.1'加载方式:Glide.with(getContext())                .load(url)                .into...

2018-09-11 17:56:53 298

原创 Android网络请求库

1.Retrofit2请求库添加依赖:compile 'com.squareup.retrofit2:retrofit:2.0.2'compile 'com.squareup.retrofit2:converter-gson:2.0.2'compile 'com.squareup.okhttp3:okhttp:3.5.0'定义接口,该接口用来定义接受的数据类型与请求的参数:publi...

2018-09-11 17:40:33 530

转载 c++直接初始化与拷贝初始化

我们常见的几种初始化的形式:string  str1 = "first";    //拷贝初始化,编译器允许把这句话改写为string str(“first”),但是string类必须有public的拷贝(移动)构造函数string  str2(10,'a');     //直接初始化string  str3(str2);      //直接初始化string  str4 = st...

2018-09-11 17:33:28 1197

原创 java Web 编程BUG

bug1:使用struts2框架时,org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 显示该架包不存在解决办法:此架包在struct2 2.5版本前有,但是2.5以后就修改了,架包的位置,应该为org.apache.struts2.dispatcher.filter.StrutsPrepareAndE...

2018-09-11 17:26:31 215

简单的登录界面

使用java和数据库做一个简单的登录界面,里面含有基本的增删查改数据库操作,适合于新人下载

2017-11-04

空空如也

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

TA关注的人

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