主頁 > 移動端開發 > 從redis 1.0 到redis 3.0,打造一個可以key-value生物資料的redis分支

從redis 1.0 到redis 3.0,打造一個可以key-value生物資料的redis分支

2020-11-16 22:58:53 移動端開發

  1. 序言

Redis 作者是意大利的Salvatore Sanfilippo(antirez),antirez是他的藝名,現在他已經被VMWare招安去安心做redis,不知道他是喜歡意大利歌女Alessia Merz還是十分討厭,反正他把redis的默認埠設定為了6379,是手機按鍵上MERZ對應的號碼,把埠號設定成美女的名字充滿了性意向,也反映了程式員這個群體的空虛寂寞冷,

核心技術部分被隱藏,以便保護開發者權益

圖中就是Alessia Merz

Redis的作者在2009年三月六日,星期五,在自己發表了一篇博客,在這篇博客里提到了他的redis,此時的redis 連0.1的版本都不是,只是一個beta 4的版本,

三月的時候作者才弄了一個logo
我們將要從最底下的那個版本講起,

這就是第一版的redis logo
這個版本的redis logo 實在不怎么好看,

“我想這是我第一次在這個博客上談到redis,但希望不是最后一次,
Redis 將是我明年hacking sessions 的主要目標,但愿這個能夠實作,

Redis 到底是干什么的呢?它是key-value資料庫,但它和memcachedb(memcached的一個持久化版本)以及其他類似資料庫有一些不同,例如許多key-value資料庫都可以這樣操作:

SET mykey foobar
GET mykey
DEL mykey

這使的這一類不需要加鎖的計算更加容易,比如set-if-not-exists操作等等,Redis的特色是不但可以有字串型別的資料,還可以存盤List Set等資料結構,

LPUSH user_100_messages "Indeed, you are right!"
LPUSH user_100_messages " .... "
LRANGE user_100_messages 0 10

前兩個操作是將元素放入鏈表中,最后一個操作是顯示這個鏈表中的前10個元素,同樣還可以對Sets 進行類似的增刪改查操作,以及幾個集合求并集等,“

這是摘錄并翻譯自作者博客中一段話,可以清楚地看到redis的目標是成為一個資料結構服務器,給程式員提供最大的方便,彌補關系型資料庫的不足,而這樣的資料庫的源代碼對于初入行的程式員還是多年的老水手都有借鑒的地方,

對于初入行的程式員最大的好處在于如何把校園里學到的資料結構變成一個優秀的輪子,把自己的理論知識近乎無縫地落到實踐中,然而直接看完美的源代碼并不能學到什么,只有經歷了一個輪子創造程序中的坑才能學好編碼,

所以就想到把redis 1.0 到redis 3.0 的變遷程序中自以為有點參考意義的更新,修改bug修正記錄下來,來拋磚引玉,

作者自己博客的第一次提到他的redis
redis google code

  1. 第一章 測驗一下redis作者第一個beta版本

因為redis的版本都只能在linux上運行,所以需要linux環境,如果是Mac 或者linux系統可以略過下邊的內容,如果是windows可以參考一下,

首先我們需要獲得一個虛擬機,筆者使用的是VMware workstation 12player ,是VMware的桌面免費版本,簡潔而又很好用,

vmware官網
這里寫圖片描述

下載完成后
還需要下載linux,筆者選用了ubuntu的最新版本,Ubuntu 14.04.1 LTS,

ubuntu下載地址
這里寫圖片描述
選擇用于開發者這個版本,

先安裝vmware,安裝后打開如下圖,
這里寫圖片描述

再創建虛擬機,選擇將虛擬機存盤為單個檔案,因為就實驗用一下,依個人喜好,
這里寫圖片描述

這里寫圖片描述

這里寫圖片描述
ubuntu14運行起來想流暢些,記憶體要多給些,
這里寫圖片描述

安裝好ubuntu,打開terminal,使用wget命令下載redis beta1的源檔案,這個鏈接需要翻墻,

http://redis.googlecode.com/files/redis-beta-1.tar.gz

redis的舊版本都在google code上的
http://code.google.com/p/redis/

這里寫圖片描述

tar -xvf redis-beta-1.tar.gz 

來解壓縮,
然后輸入 make 命令進行編譯,然后你就擁有redis了就這么簡單,
這里寫圖片描述
輸入

./redis-server

就可以運行了
這里寫圖片描述
這里寫圖片描述

然后再打開一個終端視窗,然后到剛才編譯redis的目錄下

make test

這里寫圖片描述

結果中有一個error,這個bug會在接下來的程序中講解一下,然后修正它,

當然這是自動測驗的腳本,是呼叫了test-redis.tcl這個tcl腳本,
我們也可以用telnet 連接到redis上

telnet locahost 6379

然后輸入

lrange mylist 0 10

會得到剛才make test 插入的鏈表里的值,
這里寫圖片描述

待續,接下來會寫一些redis的基本使用和redis的架構詳解,

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/220768.html

標籤:其他

上一篇:尼瑪,體檢結果一出來,洋哥慫了

下一篇:使用OpenCV校準魚眼鏡頭

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more