
Redis
文章平均质量分 88
unix21
这个作者很懒,什么都没留下…
展开
-
Redis源码分析--lookupKey函数查看value值
lookupKey函数查看value值robj *lookupKey(redisDb *db, robj *key) { dictEntry *de = dictFind(db->dict,key->ptr); if (de) { robj *val = dictGetVal(de); /* Update the access time for原创 2013-08-21 09:03:35 · 1534 阅读 · 0 评论 -
图形化的Redis监控系统redis-stat安装
Redis需要监控才知道具体运行信息,虽然Redis也提供了info等命令行,但是毕竟不方便而且不能保存历史信息。redis-stat是一个用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息。1.安装ruby# yum install -y ruby# yum install -y ruby-devel# yum ins原创 2016-02-26 11:59:40 · 1579 阅读 · 0 评论 -
Java的Redis连接池代码性能不错
其实这个是引用自网友http://blog.youkuaiyun.com/tuposky/article/details/45340183,有2个版本,差别就是ReentrantLock和synchronizedReentrantLock版import java.util.concurrent.locks.ReentrantLock;import org.apache.commons.lang原创 2016-05-09 17:52:19 · 18971 阅读 · 5 评论 -
shell语法以及监控进程不存在重启
转码# dos2unix ./test.sh权限# chmod a+x ./test.sh语法变量var="111"echo $varecho ${var}运算no1=4;no2=5;let result=no1+no2echo $result;自增自减少let no++ let no--[]和l原创 2016-02-28 22:19:27 · 724 阅读 · 0 评论 -
Redis队列的应用
很多书都说指针不是数组,但是似乎指针和数组又有某种联系。其实,指针是变量,数组也是变量,指针和数组本身不是一回事,有没有关系,但是因为指针和数组都会涉及地址,所以指针和数组可以互相转换!hash.c#include #include #include #include "hash.h"int main() { int i; struct hash_table *原创 2013-03-09 20:18:24 · 1059 阅读 · 0 评论 -
C语言不要重复包含.h头文件和.c文件
本文首先向读者讲解了Linux下进程地址空间的布局以及进程堆栈帧的结构,然后在此基础上介绍了Linux下缓冲区溢出攻击的原理及对策。原理:从逻辑上讲进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对应一个函数调用。当函数调用发生时,新的堆栈帧被压入堆栈;当函数返回时,相应的堆栈帧从堆栈中弹出。尽管堆栈帧结构的引入为在高级语言中实现函数或过程这样的概念提供了直接的硬件支持,但是由于将函数原创 2012-12-29 13:16:28 · 2140 阅读 · 1 评论 -
C语言extern关键字定义外部变量--Redis源码extern使用
在用C语言开发时,特别是在服务器端,内存的使用会成为系统性能的一个瓶颈,如频繁的分配和释放内存,会不断的增加系统的内存碎片,影响内核之后分配内存的效率,这个时候一个比较可行的做法是采用内存池,先分配好比较多的内存,然后在这个已经分配的内存里使用内存,这样就不需要内核过多的参与内存分配和释放的过程。内存池根据应用不同有多种实现的策略,如有些分配很大的内存,然后将内存分配成大小相等的块,并原创 2013-11-11 14:25:20 · 1449 阅读 · 0 评论 -
Linux守护进程实现
Linux守护进程#include #include #include #include int daemonize(void){ int fd; switch(fork()) { case -1: return (-1); case原创 2013-03-20 22:56:14 · 1082 阅读 · 0 评论 -
函数指针--Nginx和Redis中两种回调函数写法
Nginx和Redis中两种回调函数写法#include //仿Nginx的写法//定义函数指针类型typedef void (*ngx_connection_handler_pt)(int c);//redis风格typedef void redisCommandProc(int c);typedef struct{int a;//第一步:定义void (*pshow)原创 2013-08-11 16:41:44 · 2037 阅读 · 0 评论 -
利用TCMalloc替换Nginx和Redis默认glibc库的malloc内存分配
TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员。与标准的glibc库的Malloc相比,TCMalloc库在内存分配效率和速度上要高很多,这在很大程度上提高了服务器在高并发情况下的性能,从而降低了系统的负载。1.安装libunwind库 可以从http://download.savannah.gnu.or原创 2013-09-28 09:26:53 · 5218 阅读 · 0 评论 -
Redis源码分析-TCMalloc
redis很多地方都在调用zmalloc函数zmalloc在这里定义zmalloc.cvoid *zmalloc(size_t size) { void *ptr = malloc(size+PREFIX_SIZE); if (!ptr) zmalloc_oom_handler(size);#ifdef HAVE_MALLOC_SIZE update_zmall原创 2013-09-26 18:16:09 · 1550 阅读 · 0 评论 -
redis常用命令参考
操作Redis数据库 下面我们来简单的操作一下数据库。在实例开启的情况下: 1、插入数据 redis 127.0.0.1:6379> set name wwl OK 设置一个key-value对。 2、查询数据 redis 127.0.0.1:6379> get name "wwl" 取出key所对应的value。 3、删除键值原创 2013-09-02 16:06:21 · 3991 阅读 · 0 评论 -
Redis运行流程源码解析
原文作者:@凡趣科技pesiwang原文地址:http://blog.nosqlfan.com/html/4007.html本文分析源码基于Redis 2.4.7 stable 版本。 概述Redis通过定义一个 struct redisServer 类型的全局变量server 来保存服务器的相关信息(比如:配置信息,统计信息,服务器状态等等)。启动时通过读取配置文件里原创 2013-08-29 16:00:58 · 1156 阅读 · 0 评论 -
redis源码分析--zslRandomLevel位运算解析
与&0376的二进制就是1111 1110,二进制的与运算规则是,只有两个数同时为1时,则结果才为1,只要有一个数为0,则结果就为0。比如1&1=1; 1&0=0; 0&1=0; 0&0=0;因此把一个字符与二进制1111 1110进行与运算的结果就是把最后位设为0,而其他位不变。作个比喻假设a的二进制表示为1010 0111我们先不管这个数表示的是什么,我们来把这个数与1111 1110原创 2013-08-22 19:19:26 · 3687 阅读 · 3 评论 -
Redis安装与源码调试
官网下载:http://redis.io/download1.安装Redis# wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz# tar xzf redis-2.6.14.tar.gz# cd redis-2.6.14# makemake命令执行完成后,会在src目录下生成5个可执行文件,分别是redis原创 2013-07-27 09:12:35 · 11443 阅读 · 4 评论