主頁 > 前端設計 > 從redis 1.0 到redis 3.0,打造一個可以key-value生物資料的redis分支

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

2020-11-16 05:46:10 前端設計

  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/qianduan/219092.html

標籤:其他

上一篇:臥槽,這年輕人不講武德,應屆生憑“小抄”干掉5年老鳥,成功拿到位元組20Koffer

下一篇:2020-09-03

標籤雲
其他(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)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more