Redis實戰閱讀總結(第一章)

2021-08-21 09:27:20 字數 1869 閱讀 4216

1.1.0 簡介:

● 非關係型資料庫

● 可儲存key與五種型別的對映

● 儲存在記憶體,可持久化到硬碟

● 可實現客戶端分片

1.1.1 redis與其他資料庫和軟體的對比

● 暫時除了redis和mysql沒有用過例子中的其他庫,所以不多做描述

1.1.2 redis附加特性:

● 持久化:

時間點轉儲:指定時間內達到指定數量的運算元,執行儲存

命令追加:每條命令都追加到檔案,可根據資料重要性設定追加操作的間隔時間

● 高可用:

主從複製:主服務執行寫命令,複製到從服務,可達到不集中對主服務訪問,分壓的效果

1.1.3 使用redis的理由:

● 操作記憶體效率比關係型資料庫高

● 隨機寫的效率比普通資料庫快

1.2.1 string(基本單位,字元、整數或浮點數):

● set:設定

● get:獲取

● del:刪除  

1.2.3 list(有序的字串鍊錶、可重複):

● lpush、rpush:左側、右側插入元素

● lpop、rpop:左側、右側彈出元素

● lrange:獲取索引範圍內所有值

● lindex:獲取指定位置的元素        

1.2.2 set(無序的字串、不可重複):

● sadd::新增元素

● srem:移除元素

● smembers:獲取所有元素

● sismember:檢查指定元素是否存在

1.2.4 hash(無序的kv對映、不可重複):

● hset:新增

● hget:獲取

● hgetall:獲取所有鍵值對

● hdel:刪除某個鍵

1.2.5 zset(有序的kv對映、不可重複):

● zadd:新增元素

● zrange:獲取下標範圍內所有元素

● zrangebyscore:獲取給定數值範圍內所有元素

● zrem:移除

● 超過200票,提前顯示

● 提前至少一天

● 評分會隨時間遞減:評分 = 票數*固定值(一天秒數'86400'/票數閾值'200' = 432) + 發布時間的nuix時間戳

1.3.1 對文章進行投票

redis用到的儲存結構

● 按時間排序文章的zset

● 按評分排序文章的zset

● 防止重複投票每篇文章建立乙個投票人set,每次投票新增該set,一周後不能再投票,並刪除該set

程式簡述:

● 計算發布時間是否大於一周,超過則直接結束

● 投票人set新增該使用者,如果成功則沒有投過票,則文章hash票數+1,評分zset + 432

1.3.2 發布並獲取文章:

發布程式簡述:

● 生成文章id

● 將發布使用者新增到使用者投票名單,並設定一周過期時間

● 建立文章資訊到hash

● 新增到時間排序set和評分排序set裡

獲取程式簡述:

● 傳入開始和結束索引,根據索引查詢評分排序set返回多個文章id

● 遍歷id查詢文章詳情,並返回

分組並按評分顯示程式簡述:

● 利用zinterstore命令取set和zset根據key的交集生成新zset,新zset的value可自定義計算規則(set的value預設為1),預設計算為取和,這裡需要取評分或時間,所以計算規則為取最大值即可。

● 根據之前的評分zset和定義的分組set取交集,即可獲得分組內根據評分排序的文章詳情。

ps:本文為讀書總結,意在對知識點回顧,只對書中重點進行極簡總結,不適於初學,如果有描述不清或理解有誤希望及時聯絡看到會立即更正。

《Redis實戰》筆記 第一章

redis的5種基本資料結構型別 1.string 字串 2.list 列表 3.set 集合 4.hash 雜湊 5.zset 有序集合 string 字串 使用 set get del 例子 set mykey myvalue get mykey del mykey list 列表 的使用 lp...

第一章總結

動態網頁是指在伺服器端執行的程式或者網頁,它們會隨不同客戶,不同時間,返回不同的內容,隨著internet技術的興起,b s架構是對c s架構的一種變化或者改進的結構,在這種結構下,程式完全放在應用伺服器上,通過應用伺服器同資料庫服務進行通訊。url意思為統一資源定位符,也稱為網頁位址。是inter...

第一章總結

第一章的學習已經結束了。主要是學習了一些基礎的執行緒api操作,了解了執行緒的一些問題 執行緒api操作 currentthread getname setpriority interrupt isinterrupted interrupted suspend resume isalive slee...