redis

Walking on the path of Redis --- Redis confi

张军博客
废话开篇Redis的安装是非常简单易操作的,但是配置就有点复杂了,要想得到高性能的Redis数据服务,深入了解下如何配置是很重要的。配置详解下面是主要的参数及说明,至于如何配置才能最优,目前还不清楚,因为刚刚迈出了几步而已。daemonize是否以后台进程运行,默认为nopidfile如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pidbind绑定主机IP,默认值为127.0.0.1(注释)port监听端口,默认为6379tim

系统 2019-08-12 09:26:44 671

redis

redis源码笔记-sds

张军博客
sds和adlist一样,是redis的基础数据结构之一,是其为自身实现的字符串类型。ACdynamicstringslibrarysds.h1#ifndef__SDS_H2#define__SDS_H34#defineSDS_MAX_PREALLOC(1024*1024)//字符串最大的预分配长度是1M56#include7#include89typedefchar*sds;//sds本身被typedef为c

系统 2019-08-12 01:32:42 653

redis

Cassandra,Mongodb,CouchDB,Redis,Riak,HBase比

张军博客
http://www.open-abc.com/nosql-214.html尽管SQL数据库一直是我们IT行业中最有用的工具,然而,它们这样在行业中超过15年以上的“转正”终于就要寿终正寝了。现在,虽然关系型数据库仍然无所不在,但它越来越不能满足我们的需要了。NoSQL成为了业界的新宠。但是,各种“NoSQL”数据库之间的差异比当年众多关系型数据库之间的差异要大许多。这就加大了人们在建设自己的应用是选择合适的数据库的难度。在这篇汇总的PK中,我们对Cass

系统 2019-08-12 01:54:07 646

redis

Redis 2.6.2 发布,高性能K/V服务器

张军博客
Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。2012-10-26发布2.6.2。上个版本是2012-10-23的2.6.0。主要修正2.6不能在Linux<2.6.17或glibc<2.6(如RHLE5)编译的问题。另外Linenoise升级,支持了Ct

系统 2019-08-12 01:55:45 642

redis

redis 源代码分析(一) 内存管理

张军博客
一,redis内存管理介绍redis是一个基于内存的key-value的数据库,其内存管理是很重要的,为了屏蔽不同平台之间的差异,以及统计内存占用量等,redis对内存分配函数进行了一层封装,程序中统一使用zmalloc,zfree一系列函数,其相应的源代码在src/zmalloc.h和src/zmalloc.c两个文件里,源代码点这里。二,redis内存管理源代码分析redis封装是为了屏蔽底层平台的差异,同一时候方便自己实现相关的函数,我们能够通过sr

系统 2019-08-12 01:53:02 642

redis

redis源码笔记-testhelp

张军博客
testhelp.h是作者为redis量身定做的单元测试框架,对于redis这种规模的项目,就没有必要上GTEST这种大杀器了,作者18行代码搞定。不过很遗憾,在2.4.10这个版本的版本的redis中,只有sds用了这个测试框架,不知其他代码作者是如何做测试的。我慢慢摸索,摸索到了告诉大家。1#ifndef__TESTHELP_H2#define__TESTHELP_H34int__failed_tests=0;//失败的测试用例数5int__test_

系统 2019-08-12 01:32:41 633

redis

关于mongodb ,redis,memcache之间见不乱理还乱

张军博客
先说我自己用的情况:最先用的memcache,用于键值对关系的服务器端缓存,用于存储一些常用的不是很大,但需要快速反应的数据然后,在另一个地方,要用到redis,然后就去研究了下redis.一看,显示自己安装了php扩展,因为有服务器上的redis服务端,自己本地就没有安装,其实用法和memcache基本一样,可能就是几个参数有所不同。当然它们缓存的效果也不一样,具体的哪里不一样,一下就是一些资料,和自己的总结1、Redis和Memcache都是将数据存放

系统 2019-08-12 09:27:39 621

redis

Redis bio

张军博客
还是一个很小的模块。bio就是backgroundio的意思,既然要background,就要创建线程,创建几个线程呢?有几种类型的io,就创建几个线程。同一种类型的job需要排队,所以存放各自的工作链表里面。redis目前有两种类型的job:一个是closefiledescriptor,另一个是aofsync。线程的堆栈默认设为4M,每个线程运行开始时还要把SIG_ALRM(定时器信号)block掉,保证watchdog发出的信号只有主线程接收到。介绍下

系统 2019-08-12 01:53:00 618

redis

Redis常用数据结构和操作

张军博客
1.String存入字符类型Setnameluowen设置name=luowen存储Getname获取设置好的name的值Setnxnameluowen设置name键值为luowen如果存在,则返回0不存在返回1Msetnameluowenage23salary233333设置多个键值对一块存错全成功,全失败Msetnxnamemaomaoage23hobybasketball如果设置多个键值对中有存在返回失败Mgetnameagesalary获取多个键的

系统 2019-08-12 01:52:55 616

redis

redis源码笔记 - redis对过期值的处理(in redi

张军博客
redis允许对key设置超时时间,实现过期key的自动淘汰。这篇blog分析下,其自适应(adaptive)的淘汰机制。redis每隔100ms定时执行的循环(serverCronfunction)里有如下语句:655/*Expireafewkeyspercycle,onlyifthisisamaster.656*OnslaveswewaitforDELoperationssynthesizedbythemaster657*inordertoguaran

系统 2019-08-12 01:32:33 611

redis

Redis一些命令总结

张军博客
链接操作相关的命令quit:关闭连接(connection)auth:简单密码认证持久化save:将数据同步保存到磁盘bgsave:将数据异步保存到磁盘lastsave:返回上次成功将数据保存到磁盘的Unix时戳shundown:将数据同步保存到磁盘,然后关闭服务远程服务控制info:提供服务器的信息和统计monitor:实时转储收到的请求slaveof:改变复制策略设置config:在运行时配置Redis服务器对value操作的命令exists(key)

系统 2019-08-12 01:33:41 608

redis

关于redis、memcache、mongoDB 的对比

张军博客
从以下几个维度,对redis、memcache、mongoDB做了对比,欢迎拍砖1、性能都比较高,性能对我们来说应该都不是瓶颈总体来讲,TPS方面redis和memcache差不多,要大于mongodb2、操作的便利性memcache数据结构单一redis丰富一些,数据操作方面,redis更好一些,较少的网络IO次数mongodb支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富3、内存空间的大小和数据量的大小redis在2.0版本后增加

系统 2019-08-12 01:31:51 608

redis

redistribute

张军博客
redistribute就是把一种协议转换成另一数协议,或者说把一种协议注入到另一种协议里去,比如,把OSPF注入到EIGRP。其实多数网络都是用一种协议,应该很少机会用redistribute,但事实上这个命令出现频繁?比如,你的网络跑的是RIP,但你的老板走私兼偷税赚了很多黑钱,于是公司发展很快,这时你发现RIP不足以应付现在的发展,很多鸟人投诉说网络太慢,连QQ泡妞都很不爽,于是你做出了一个重大的决定,就是把RIP升级为IGRP,不过你也有点担心,怕

系统 2019-08-12 01:53:48 606

redis

redis搭建实战记录

张军博客
Redisisanopensource,advancedkey-valuestore.Itisoftenreferredtoasadatastructureserversincekeyscancontainstrings,hashes,lists,setsandsortedsets.--fromhttp://redis.io/redis是一个基于内存的高性能key-value数据库,数据都保存在内存中定期刷新到磁盘,以极高的读写效率而备受关注。他的特点是支

系统 2019-08-12 01:33:12 604

redis

Redis(三)节省内部空间优化

张军博客
总体原则:key的名称不易过长,剩下的所有能用纯数字表示的尽量用Redis的每一个键值都是用一个redisObject结构体表示的结构体中有:键值的类型(string/list/hash/set/zset)内部编码方式(下面重点讲)该键值被多少次引用内容指针若内容指针指的是字符串,则内容指针指向sdshdr的结构体(该结构体中字符串长度、buf中剩余空间、buf字符数组[存字符串])存储键值空间=redisObject大小+sdshfr大小+字符串大小若内

系统 2019-08-12 01:53:37 600