redis源碼筆記-劉浩de技術博客-博客園redis源碼筆記記錄發現的一個hiredis的bug摘要:hiredis是redis官方提供的c客戶端庫。在讀代碼的過程中,發現了一個bug,記錄一下。hiredis里定義了一個上下文結構(structredisContext),代碼如下(deps/hiredis/hiredis.h):https://github.com/antirez/hiredis/blob/master/hiredis.h157/*Co
系統 2019-08-12 01:33:33 2749
redis是一個帶持久化的高速key-value存儲系統。特點是:熱數據放在內存里面實現高速訪問,支持可配置的數據持久化,支持主從同步,不依賴任何第三方庫(包括通訊層),自己實現了類似virtualmemory的機制,代碼量不大。和mysql相比,redis的讀寫速度要快很多。和memcached相比,redis帶有持久化和主從機制,不過redis重啟比較慢。和bdb相比,redis的讀寫速度快一些、擴展性也相對好一些。和mongodb相比,redis要簡
系統 2019-08-12 01:53:12 2743
from:soclassictobenotedhere.Inthislight,hereisacomparisonofCassandra,Mongodb,CouchDB,Redis,Riak,Membase,Neo4jandHBase:CouchDB(V1.1.1)Writtenin:ErlangMainpoint:DBconsistency,easeofuseLicense:ApacheProtocol:HTTP/RESTBi-directional(!
系統 2019-08-29 23:36:32 2736
數據持久化通俗講就是把數據保存到磁盤上,保證不會因為斷電等因素丟失數據。redis需要經常將內存中的數據同步到磁盤來保證持久化。redis支持兩種持久化方式,一種是Snapshotting(快照)也是默認方式,另一種是Append-onlyfile(縮寫aof)的方式。先介紹下這兩種dump方式再講講自己遇到的一些現象和想法,前面的內容是從網上整理出來的。Snapshotting快照是默認的持久化方式。這種方式是就是將內存中數據以快照的方式寫入到二進制文件
系統 2019-08-12 01:53:18 2697
Redis的主從復制功能非常強大,一個master可以擁有多個slave,而一個slave又可以擁有多個slave,如此下去,形成了強大的多級服務器集群架構。下面我演示下怎樣在多臺服務器上進行Redis數據主從復制。這里我假設有兩臺服務器,一臺是Windows操作系統(局域網IP:192.168.3.82),一臺是Linux操作系統(局域網IP:192.168.3.90),在兩個操作系統都安裝redis,Windows操作系統使用cygwin工具進行安裝,
系統 2019-08-12 01:51:37 2686
Redisintset也非常簡單。它是一個有序整數集合,實際上是一個有序數組,查找時二分查找,添加時可能需要內存挪動。唯一不同的是,它的整數類型是變動的,可以支持int16,int32,int64三種,當然用越小的單位越省內存。只有當當前的整數類型存不下更大的整數時,才讓整數類型變大??唇Y構就了解了:typedefstructintset{uint32_tencoding;uint32_tlength;int8_tcontents[];}intset;en
系統 2019-08-12 01:54:22 2682
importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.Set;importredis.clients.jedis.Jedis;/***@authorwangzhijun*@date2013-04-01*/publicclassRedisTest{/***@paramargs*/publicstaticvoidmain(String[]args){//
系統 2019-08-12 01:55:25 2673
這篇介紹redis最后一個基礎數據結構——hash表。可以毫不夸張的說,hash表是redis一切存儲的基礎,也是redis得以快如飛的基礎。注:其實還有個intset,不過intset是在持久化dump到硬盤時為節省空間設計的,和我們這里談的不一樣。dict的設計呢,簡單的說是一個雙表,“一主一從”,不定時rehash,建議大家在讀代碼前能夠對這個設計有所了解。Anyway,隨便搜一搜,很多文章的。dict.h1#ifndef__DICT_H2#defi
系統 2019-08-12 01:32:41 2659
0,在網上找redis源碼分析的文檔看,發現一些很好的博客:感謝這些大牛認真的工作先記下,回頭仔細看:http://www.hoterran.info/redis_protocolhttp://qing.weibo.com/tj/6acf143f330005qm.htmlhttp://dongxicheng.org/nosql/redis-code-basic-points/http://www.cnblogs.com/liping13599168/arc
系統 2019-08-12 01:55:45 2654
aof是redis提供的一種數據持久化機制,通過將每一條命令dump下來,保持數據和內存中的數據一致。1#include"redis.h"2#include"bio.h"34#include5#include6#include7#include8#include9#include10#include
系統 2019-08-12 01:32:34 2648
ZINTERSTORE—Redis命令參考ZINTERSTOREdestinationnumkeyskey[key...][WEIGHTSweight[weight...]][AGGREGATESUM|MIN|MAX]計算給定的一個或多個有序集的交集,其中給定key的數量必須以numkeys參數指定,并將該交集(結果集)儲存到destination。默認情況下,結果集中某個成員的score值是所有給定集下該成員score值之和.關于WEIGHTS和AGGR
系統 2019-08-12 01:54:47 2630
早就聽說redis性能卓越,不過難以使用,但看了HackerNews的報道后,還是被它的難度嚇倒了。原文標題:From1.5GBto50MB:TheStoryofMyRedisDatabase,鏈接在這里:http://davidcel.is/blog/2013/03/20/the-story-of-my-redis-database/文章的內容簡單的來說(英文水平不夠,有錯莫怪),剛開始,由于設計不好,redis的內存使用達到了1.5GB,服務器出現崩潰
系統 2019-08-12 01:55:41 2615
一、簡介REmoteDIctionaryServer(Redis),redis是一個基于內存的單機key/value系統,類似memcached,但支持value為多種形式,包括:字符串(string)、鏈表(list)、集合(set)、有序集合(sortedset)和hashtable二、特點1優點與memcache和MySQL等類似產品比較,Redis有以下幾個優點:(1)非常豐富的數據結構,且這些數據結構的常見操作均是原子性的;(2)高速讀寫。Mem
系統 2019-08-12 01:51:26 2611
redis資源比較零散,引用nosqlfan上的文章,方便大家需要時翻閱。大家看完所有的,如果整理出文章的,麻煩知會一下,方便學習。1.Redis是什么?十五分鐘介紹Redis數據結構Redis系統性介紹一個很棒的Redis介紹PPT強烈推薦!非同一般的Redis介紹Redis之七種武器鋒利的Redisredis適用場景與實現【翻譯】Redis協議2.Redis內部實現Redis源碼分析系列文章Redis運行流程源碼解析Redis2.6Lua腳本功能實現分
系統 2019-08-12 01:52:19 2609
ae框架是redis作者開發的事件處理框架,其目的和libevent項目類似。redis本著最小依賴原則,自己實現了一套,而且速度更快。ae只有不到500行代碼,但據說libevent有3萬加的代碼,實現這一個功能所付出的代碼量已經超過了redis所有的代碼量。ae.h1#ifndef__AE_H__2#define__AE_H__3//同時支持的連接數,其實這個還是可以設的更大一些4#defineAE_SETSIZE(1024*10)/*Maxnumbe
系統 2019-08-12 01:32:38 2575