hobbs136
码龄19年
关注
提问 私信
  • 博客:63,053
    社区:303
    63,356
    总访问量
  • 17
    原创
  • 1,366,088
    排名
  • 22
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:乌克兰
  • 加入CSDN时间: 2006-06-09
博客简介:

hobbs136的专栏

查看详细资料
个人成就
  • 获得2次点赞
  • 内容获得6次评论
  • 获得2次收藏
创作历程
  • 7篇
    2012年
  • 11篇
    2009年
TA的专栏
  • c语言学习
    3篇
  • mysql
    2篇
  • php学习
    3篇
  • 心情
  • 编程技巧
  • redis
    6篇
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Redis实战系列(6) 利用lua对redis特定类型元素的list进行分段

只对排序的数字list进行分段存取,性能上有所下降,但是没有测试下降多少list_add.lualocal config = redis.call('config','get','list-max-ziplist-entries')local maxzipNum=tonumber(config[2])local metainfo=KEYS[1]..':split:met
原创
发布博客 2012.06.07 ·
3313 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Redis实战系列(5) phpredis的brpop问题

使用phpredis的brPop实现消息队列时,发现每隔3秒便会出现read error on connection,而brPop的timeout参数是58,也就是默认的php socket超时时间减去2。redis server的timeout已经是0。 php的default_socket_timeout=-1,但是还是3秒的周期出现异常。最后发现是connect时传入了timeout=3,将
原创
发布博客 2012.06.07 ·
2191 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

Redis实战系列(5) phpredis的brpop问题

使用phpredis的brPop实现消息队列时,发现每隔3秒便会出现read error on connection,而brPop的timeout参数是58,也就是默认的php socket超时时间减去2。redis server的timeout已经是0。 php的default_socket_timeout=-1,但是还是3秒的周期出现异常。最后发现是connect时传入了timeout=3,将
原创
发布博客 2012.06.07 ·
8209 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

Redis实战系列(4) key的设计

Redis实战系列(4) key的设计我们的业务是内部微博,主要模块有 用户信息、微博信息、我关注的人、我的粉丝、我关注的人发布的微博、我发布的微博,还有类似sina微博的小黄签之类的提醒功能。key的设计如下:1.用户信息 用户信息是离散,因此用hashtable来存储以用户的user_id为key。实例 user:info:$user_id 其中$user_id是动态的变量 use
原创
发布博客 2012.06.05 ·
4887 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis实战系列(3) 使用hashtable和hash-max-zipmap-entries优化内存使用

在我的系统中大约有50000个用户,每个用户有nickname1、nickname2、nickname3、nickname4、profile_id。对于上面几个属性来说,每个用户都是唯一的,而用户信息大概有70个字段。我用user:info:$profile_id作为一个hashtable的key来存储一个用户的所有信息。而系统要求能用nickname1、nickname2、nickname3、n
原创
发布博客 2012.06.02 ·
10894 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Redis实战系列(2) 使用List结构构造高效的队列系统

Redis 提供了brpop blpop brpoplpush三个阻塞命令来监听一个List数据结构。下面是php脚本server.php$redis = new Redis();$redis->connect('127.0.0.1');while(true){ $data = $o->brpop(array('key1','key2'), 30); var_dump($data
原创
发布博客 2012.06.01 ·
10974 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Redis实战系列(1) 运行多个实例以充分发挥多核处理器的能力

我们知道Redis是用"单线程-多路复用io模型"来实现高性能的内存数据服务的,这种机制避免了使用锁,但是同时这种机制在进行sunion之类的比较耗时的命令时会使redis的并发下降。因为是单一线程,所以同一时刻只有一个操作在进行,所以,耗时的命令会导致并发的下降,不只是读并发,写并发也会下降。而单一线程也只能用到一个cpu核心,所以可以在同一个多核的服务器中,可以启动多个实例,组成master-
原创
发布博客 2012.05.31 ·
12115 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

gcc生成静态库和动态库

一、库文件简介简单地说,库(Library)就是一组已经写好了的函数和变量、经过编译代码,是为了能够提高开发效率和运行效率而设计的。库分为静态库(Static Library)和共享库(Shared library)两类。静态库文件的扩展名是.a,共享库文件的扩展名是.so(在CYGWIN环境下,分别叫做.o和.dll)。共享库现在常常被叫做动态库,是由于很多人借用了MS Window
转载
发布博客 2009.10.13 ·
674 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

关于php中类的作用

     如题,我想学习java、c#、c++的同学能够比我解释的更好,但是我还是想要妄自菲薄一下,发表一下我的一点不成熟的看法。有人问php中的类到底有什么作用,我觉得这明显有贬低php的面向对象特性的嫌疑,好像面向对象换了个语言来实现其本质特征就不一样了。面向对象是一个概念,是一种思想,如果你没有很好的理解,无论在用什么语言实现,那只能是一堆函数的堆砌而已,可以形容为只用了面向对象的“
原创
发布博客 2009.08.16 ·
764 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

对web并发插入时出现重复记录的一点想法

       首先我们先了解下mysql的锁表机制。一种是共享锁,一种是独占锁。共享锁就是读锁,这种锁主要就是防止在读的时候又有新数据的插入,而并不排斥其他的线程读取。而独占锁就是在写的时候加的锁,既防止读,又防止写。好了,现在我们分析下为什么会出现重复记录。 假设一种情况:假设有两个表:a,b。a为订单表,b为帐务记录表。if order1.state == not_confirm
原创
发布博客 2009.08.10 ·
1818 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql事务隔离级别测试

<?phpinclude_once(getenv(HOME)./autoload.php);$oDb = Db::get(account);$oDb->query(SET TRANSACTION ISOLATION LEVEL SERIALIZABLE);//$oDb->query(SET TRANSACTION ISOLATION LEVEL REPEATABL
原创
发布博客 2009.08.06 ·
1089 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Extending.and.Embedding.PHP读书笔记(5)-内存管理

1.内存php对照c语言的malloc(), free(), strdup(), realloc(), calloc()等等这些函数进行了封装,实现了一套自己的内存管理宏emalloc(),efree(),strdup(),erealoc(),ecalloc()等等宏。为什么要自行封装内存管理函数呢,直接用操作系统提供的不行吗?这是因为在每个请求中,遇到die,exit或者是具有使脚本停止
原创
发布博客 2009.08.03 ·
852 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Extending.and.Embedding.PHP读书笔记(4)-php变量

 1.php是松散变量类型的语言,即变量可以不经过声明便可以使用,变量可以存储任何类型的值2.比较重要的数据类型在Zend/zend.h中定义的zval zvalue_valuetypedef struct _zval_struct {    zvalue_value value;    zend_uint refcount;    zend_uchar type;
原创
发布博客 2009.08.03 ·
1090 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Extending.and.Embedding.PHP读书笔记(3)-Zend线程安全

    Php在其诞生初期,作为一个单进程的CGI程序并没有考虑线程安全,因为没有任何进程能够比一个请求生存期更长。所以一个内部变量能够声明在一个全局范围内,并且可以任意更改,只要它被确切的初始化了。任何没被清理的资源都会随着cgi进程的结束而被释放。    多进程的web server的出现并没有促使TSRM这层的出现,真正促使该层出现的是多线程web server的出现。   
原创
发布博客 2009.08.03 ·
960 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Extending.and.Embedding.PHP读书笔记(2)-php生命周期

 1.php的开始和结束有两个,其中一个为随着sapi启动而启动,并随着sapi关闭而结束。每个扩展都包含这两个函数PHP_MINIT_FUNCTION 随着sapi启动,进行一些该扩展的静态变量声明等操作,这些变量将会出现在每次请求中。PHP_MSHUTDOWN_FUNCTION随着sapi的关闭进行一些该扩展的资源清理工作。另外一个随着每个请求而启动,随着单个请求的结束而结束。PHP_RI
原创
发布博客 2009.08.03 ·
1012 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Extending.and.Embedding.PHP读书笔记(1)-php关键部分介绍

 php分5个部分1.SAPI(Server API),这部分负责提供外部接口。2.Php core 负责请求管理,网络和io操作3.Zend引擎,负责语法分析,编译执行,内存和资源管理4.Php extensions php扩展,这包含了我们日常所使用的所有函数5.最后一部分TSRM,贯穿所有上面几个部分,这一层叫作线程安全的资源管理(Thread Safe Resource
原创
发布博客 2009.08.03 ·
958 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

变量的初始化

    一般的编译器都支持在编译阶段初始化全局变量,但是我想生命的全局变量对象过大的话,会占用很多磁盘空间。静态全局变量在可执行文件中的数据段。     局部变量在所谓的BSS段放着,这个段的名字就叫为初始化存储段。如果操作系统为程序提供的这个单独的段,那么他一般也会支持在程序执行前将程序所用内存清空,所以为了节省空间,编译器并未对局部变量进行初始化。但是在有的操作系统中,虽然有此段,但是操作
原创
发布博客 2009.07.16 ·
408 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

在用链表实现堆栈时遇到的问题

下面是正确的代码 1 #include 2 #include 3 4 struct node{ 5 int value; 6 struct node *next; 7 }; 8 9 struct node *push(struct node *stack,int value); 10 struct node *pop(s
原创
发布博客 2009.07.07 ·
780 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏
加载更多