Redis类的源码使用】的更多相关文章

$redis = new Redis(); //连接redis服务器 $redis->connect('127.0.0.1', '6379'); $key = "key"; $val = "val"; //redis key操作 $redis->exists($key); //判断key值是否存在 $redis->expire($key, 10); //设置key在10秒后过期 //redis string 字符串 $redis->set($…
豌豆夹Redis解决方案Codis源码剖析:Dashboard 1.不只是Dashboard 虽然名字叫Dashboard,但它在Codis中的作用却不可小觑.它不仅仅是Dashboard管理页面,更重要的是,它负责监控和指挥各个Proxy的负载均衡(数据分布和迁移).并且,所有API都以RESTFul接口的形式对外提供,供Proxy和codis-config(Codis的命令行工具)调用.下面就来看一下数据分布和迁移的代码执行流程. Dashboard涉及到的知识点比较多,包括Martini框…
豌豆夹Redis解决方案Codis源码剖析:Proxy代理 1.预备知识 1.1 Codis Codis就不详细说了,摘抄一下GitHub上的一些项目描述: Codis is a proxy based high performance Redis cluster solution written in Go/C, an alternative to Twemproxy. It supports multiple stateless proxy with multiple redis insta…
25 BasicUsageEnvironment0基本使用环境基类——Live555源码阅读(三)UsageEnvironment 25 BasicUsageEnvironment0基本使用环境基类——Live555源码阅读(三)UsageEnvironment 简介 代码定义如下 BasicUsageEnvironment0构造析构与重置 ResultMsg系列方法 getResultMsg() const方法(获取buffer) appendToResultMsg方法(添加msg到buffe…
24 UsageEnvironment使用环境抽象基类——Live555源码阅读(三)UsageEnvironment 24 UsageEnvironment使用环境抽象基类——Live555源码阅读(三)UsageEnvironment 简介 下面是其定义 UsageEnvironment的构造与析构 reclaim方法(自我回收) internalError方法(内部错误) 这是Live555源码阅读的第三部分,包括了UsageEnvironment相关的三个类. 本文由乌合之众 lym瞎编…
12 哈希表相关类--Live555源码阅读(一)基本组件类 这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso 哈希表相关类综述 哈希表相关类一个有两个,HashTable和BasicHashTable.HashTable是BasicHashTable的派生类.…
之前面试的时候被问到有没有看过String类的源码,楼主当时就慌了,回来赶紧补一课. 1.构造器(构造方法) String类提供了很多不同的构造器,分别对应了不同的字符串初始化方法,此处从源码中摘录如下: 其中蓝色的实心三角表示no modifier(没有修饰符,friendly),表示只能被同一个包中的所有类访问,而不同包中的类不能访问. 这里举了一些示例,来说明这些构造器的用法: String string = new String(); System.out.println(string.…
经常需要查看某一个类中的成员变量和方法,那么怎么进入到这个类的源码区域呢?在IDEA中只需要使用快捷键: ctrl+shift+t 就可以快速定位到这个类的源码.…
分享一个我自己用着的php分页类实例源码,供大家参考,具体内容如下: <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private…
java线程类的源码分析阅读技巧: 首先阅读thread类重点关注一下几个问题: 1.start() ,启动一个线程是如何实现的? 2.java线程状态机的变化过程以及如何实现的? 3. 1.start方法的源码如下: new Thread(Runnable):代码内部实际代码如下: /** * Initializes a Thread. * * @param g the Thread group * @param target the object whose run() method get…
相同:底层均采用字符数组value来保存字符串 区别:String类的value数组有final 修饰,指向不可改,同时private 未提供修改value数组的方法.StringBuilder类的value数组没有final修饰,可以改变指向,且可以扩容,扩容通过新建字符数组完成. 首先分析String的源码: 可以看到String类有final修饰,所以String类不能被继承.这保证对String对象方法的调用确实运行的是String类的方法,而不是经其子类重写后的方法.往下看,是valu…
  文章转自:http://blog.sina.com.cn/s/blog_52f623240102vpcr.html   在Eclipse中需要查看某个类的源码,直接按住Ctrl 然后点击想要查看的类或则方法,就会打开相对应的类文件,可是这是建立在配置好源source的情况下才会打得开,下面让我们去看看如何配置: 一.android API 源码 1.首先要先下载SDK下的对应版本API的源码Source for Android SDK 2.之后找到你所安装的SDK所在的目录,我的SDK目录路…
贪吃蛇类游戏源码 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 头部移动方式 2 生成 Shit 道具 3 吃到 Shit 增加身体长度 支持 May Be -- 搞开发,总有一天要做的事! 1 头部移动方式 了解更多,可以跳转到SiKi学院,观看视频:SiKi学院 SiKi学院--是本人发现的网络教程做的很完善的网络课堂,推荐大家多学,多看 using UnityEngine; using Sys…
Java并发工具类CountDownLatch源码中的例子 实例一 原文描述 /** * <p><b>Sample usage:</b> Here is a pair of classes in which a group * of worker threads use two countdown latches: * <ul> * <li>The first is a start signal that prevents any worker…
1.简单介绍 当前NoSql使用已经极为普遍,无论是Java生态圈,还是.net生态圈.大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面.主流的技术有:HBase.MongoDB.Redis等等.我为什么要选择Redis呢?一是因为,我跟风学来的...二是,套用某位大神的话,Redis是Nosql数据库中使用较为广泛的非关系型内存数据库,redis内部是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).l…
线程池 ThreadPoolExecutor 类的源码解析: 1:数据结构的分析: private final BlockingQueue<Runnable> workQueue;  //用于存储未被线程池处理的任务 private final ReentrantLock mainLock = new ReentrantLock(); //维护一个lock来保证线程安全 private final HashSet<Worker> workers = new HashSet<W…
1.startsWith(String prefix, int toffset)方法 包括startsWith(*),endsWith(*)方法,都是调用上述一个方法 public boolean startsWith(String prefix, int toffset) { char ta[] = value; int to = toffset; char pa[] = prefix.value; int po = 0; int pc = prefix.value.length; // No…
核心逻辑概述 ThreadPoolExecutor是Java线程池中最核心的类之一,它能够保证线程池按照正常的业务逻辑执行任务,并通过原子方式更新线程池每个阶段的状态. ThreadPoolExecutor类中存在一个workers工作线程集合,用户可以向线程池中添加需要执行的任务,workers集合中的工作线程可以直接执行任务,或者从任务队列中获取任务后执行.ThreadPoolExecutor类中提供了整个线程池从创建到执行任务,再到消亡的整个流程方法.本文,就结合ThreadPoolExe…
相关文章 Redis 初探-安装与使用 Redis常用指令 本文将从以下几个部分进行介绍 1.前言 2.常用命令 3.字符串结构 4.字符串实现 5.命令是如果操作字符串的 前言 平时在使用 Redis 的时候,只会使用简单的 set,get,并不明白其中的道理,为了探个究竟,搞个明白,就看了下其底层的实现,本人的C言语水平只停留在大学上课堂上,所以看起来还是有点吃力,好在一些关键流程,数据结构还是看得懂 ^ ^. Redis 的字符串是 Redis 中最基本的一种数据结构,所有的 key 都用…
一.ziplist简介 从上一篇分析我们知道quicklist的底层存储使用了ziplist(压缩列表),由于压缩列表本身也有不少内容,所以重新开了一篇,在正式源码之前,还是先看下ziplist的特点: 1. ziplist是一种特殊编码的双向列表,特殊编码是为了节省存储空间. 2. ziplist允许同时存放字符串和整型类型,并且整型数被编码成真实的整型数而不是字符串序列(节省空间). 3. ziplist列表支持在头部和尾部进行push和pop操作的时间复杂度都在常量范围O(1),但是每次操…
上一篇介绍了数据类型转换的一些情况,可以看出,如果不进行封装,有可能导致比较混乱的代码.本文通过TDD方式把数据类型转换公共操作类开发出来,并提供源码下载. 我们在 应用程序框架实战十一:创建VS解决方案与程序集 一文已经创建了解决方案,包含一个类库项目和一个单元测试项目.单元测试将使用.Net自带的 MsTest,另外通过Resharper工具来观察测试结果. 首先考虑我们期望的API长成什么样子.基于TDD开发,其中一个作用是帮助程序员设计期望的API,这称为意图导向编程. 因为数据类型转换…
这是Live555源码阅读的第二部分,包括了任务调度相关的三个类.任务调度是Live555源码中很重要的部分. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso TaskScheduler任务调度器抽象基类 TaskScheduler是一个抽象基类,其定义在live555sourcecontrol\UsageEnvironment\include\UsageEn…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso HashTable抽象哈希表类 HashTable类内部嵌套定义了一个迭代器类Iterator,这个迭代器类用于循环访问表的成员.这也是一个抽象类,但是其有一个静态的方法static Iterator* crea…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso AlarmHandler定时处理类 这个类定义在live555sourcecontrol\BasicUsageEnvironment\BasicTaskScheduler0.cpp文件中. AlarmHandle…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 www.cnblogs.com/oloroso/ 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso DelayQueue 延时队列类 这个类的设计不是很复杂,但是要清楚的知道其设计的思路.先给个图 10_DelayQueue.png 这个链表的设计和前面不一样.其内部只有一个EventTime fLastSyncTime最后…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ DelayQueueEntry 延时队列节点类 entry的意思如下 entry n.进入,入场; 入口处,门口; 登记,记录; 参加比赛的人; 为什么说是节点类呢?这个通过阅读代码就可以知道了. DelayQueueEntry类含有四个数据成员,其中fNext和fPrev说明了其是一个链表的节…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ 延时队列相关类 延时队列相关类一共有两个,DelayQueue(延时队列)和DelayQueueEntry(延时队列节点).后面说到任务调度器(TaskScheduler)的时候会使用到. DelayQueue是DelayQueueEntry的派生类,同时也是它的友元类.其定义在live555s…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso HandlerSet 处理程序链表类 这里使用的Set这个单词,Set是集合的意思,这里实质上是一个双向循环链表.这个类比较重要,这里会详细的介绍. HandlerSet类只有一个数据成员,就是HandlerDescriptor fHandlers;这是作为链表的头结点而存在的. HandlerSet的定义,代码…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ HandlerDescriptor 处理程序描述类 HandlerDescriptor类是一个很重要的类,其保存了处理程序的函数指针和相关的数据的地址.在构建处理任务的时候,会使用到这个类的对象,处理任务的时候也会用到. HandlerDescriptor类同时将HandlerIterator类…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso HandlerIterator处理程序迭代器类 这里本应该先介绍HandlerDescriptor类的,因为这个类与它的关联比较大,就先介绍这个类. HandlerIterator是一个迭代器类,其有两个数据成员,分别是HandlerSet类对象的引用fOurSet,以及一个HandlerDescriptor对象…