- 博客(11)
- 资源 (3)
- 收藏
- 关注
原创 Redis 单线程和IO复用
Redis是基于单线程实现,但是速度却不慢,原因有二:1)基于内存运行机制,单线程降低了cpu内核资源的使用压力;2)Redis会根据不同的系统使用了I/O复用机制;redis的I/O复用是redis依赖设备平台提供的机制,redis会使用一些C语言提供的函数库,这些函数库能为redis选择当前系统版本最优秀的I/O复用技术。说白了,redis依赖于C语言提供的函数库,通过对IO多路复用的函数库进行封装,根据自身需要提供IO复用技术;并且redis会依据不同平台而设置不同的使用机制.
2020-10-14 23:33:33 287
原创 redis的数据结构和拓容
redis的存储结构是基于hashtable,在redis里,这个hashtable称之为字典。而字典里存储着 hashkey - dictentry,为了解决key的hash冲突,dictentry是一个数组,key进行哈希函数(Murmurhash2)后得出有可能会产生相同的哈希值。所以dicentry是一个数组,最新来的元素值会放到dicenty的头部,这样能提高查询效率,元素值可能是指针,也可能是整数;对于Murmurhash2算法的评价:随机性好,速度快;问题:ha..
2020-10-14 23:28:34 173
原创 redis的三种多机模式
redis有三种多机模式:•单机模式读和写都由单台服务器来完成,适用于数据量较少的情况•replication模式,单master,多slave主从复制,读写分离;master负责写入,slave负责读取,基于单机的基础上,提高了读的效率,但并没有增加存储量或存储效率•cluster模式,多master,多slave多master,多slave,适用于数据量特别大的情况;但要注意的是,master负责写和读,slave只是备份master数据,等master挂掉之后,成为新的ma.
2020-10-14 23:15:59 662
原创 zookeeper如何控制请求的数量?
zookeeper通过参数maxClientCnxns数来控制客户端的连接数,,超过这个数量就会抛出IO异常:throw new IOException("Too many connections from " + ia" - max is " + maxClientCnxns );连接数maxClientCnxns默认是60:关键代码在于nio服务工厂对于NIOServerCnxnFactory的接受连接的处理:/** * Accept new socke..
2020-10-14 21:48:43 890
原创 zookeeper请求用了什么协议,序列化用了什么方式?
/** * 创建节点 */@Testpublic void createNodeTest() { System.out.println("conneted ok!"); User user = new User(); user.setId("1"); user.setName("testUser"); /** * testUserNode" :节点的地址 * user:数据的对象 * CreateMode.PERSISTEN.
2020-10-14 21:38:04 481
原创 解读zookeeper顺序节点和分布式锁的实现原理
关键代码在于:zookeeper的预处理器PrepRequestProcessor方法pRequest2TxnCreate(...)/** * zk请求事务处理 */ private void pRequest2TxnCreate(int type, Request request, Record record, boolean deserialize) throws IOException, KeeperException { if (deserial
2020-10-14 18:11:22 988
原创 使用zookeeper源码来搭建服务端
学习zookeeper除了阅读网络上已经整理好的文献外,要深入学习离不开对于源码的阅读,下面贴出使用zookeeper源码来搭建服务端的步骤:zookeeper服务端搭建:从git上下载经过处理的源码(非官网):https://github.com/HelloZola/zookeeper-branch-3.5.6该源码是使用git上zookeeper最新开源源码,并通过版本回退,而且在本地机器经过修改以达到可直接下载使用和运行,可进行调试和学习之用,最新的官方源码可访问:https://g.
2020-10-14 17:28:19 508
原创 log4j+slf4j 占位符使用
在实际开发中,项目并没有直接使用log4j作为日志主要打印,而进一步选择slf4j,原因很多,具体可以参考:https://blog.csdn.net/minicto/article/details/52672472 但在slf4j中,占位符是一个非常实用的打印。话不多说,直接上demo:建立一个实体对象:/** * 个人实体对象 * * @Auther: chenka...
2018-09-30 18:28:18 13817
原创 log4j+slf4j 搭建
搭建maven工程,本人搭建的是jar版的maven 添加log4j和slf4j的maven依赖: <!--日志 start--> <dependency> <groupId>log4j</groupId> <artifactId>log4j<...
2018-09-30 18:20:55 384
原创 kafka消息生产者--新旧api
新版本的kafka的对于消息发送生产者提供了新的api,相对于旧版的api,性能有了大大的提升:旧版API:package com.ztesoft.iot.bill.spark.kafka;import java.util.ArrayList;import java.util.List;import java.util.Properties;import com.ztesoft.iot...
2018-05-09 17:27:55 1478
转载 kafka安装教程
下载安装文件:https://www.baidu.com/link?url=gFxAJh0GjJzFAA-_R3ez6szJCiNobWOVUjOaLzBByNRUERK0NHA5IY8pg3JtpGV5&wd=&eqid=9a3de56c00023cf0000000065ac74964安装教程:https://www.cnblogs.com/mrblue/p/6425309.ht...
2018-04-07 11:40:35 401
中国5级地理数据、数据库数据(省、市、区、镇、居委会)
2018-10-22
中国地理省市区镇居委会
2018-10-18
中国地理数据-省市区镇居委会
2018-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人