Redis學習一(概要)

2022-01-31 12:40:10 字數 2931 閱讀 1461

redis是乙個開源的使用 ansi c語言編寫、遵守 bsd 協議、支援網路、可基於記憶體亦可持久化的日誌型、key-value 的資料庫、並提供多種語言的api。

redis是乙個執行在記憶體中的資料結構伺服器(data structures server)。redis使用的是單程序(除持久化時),所以在配置時,乙個例項只會用到乙個cpu。

通常,redis 將資料儲存於記憶體中,或被配置為使用虛擬記憶體。通過兩種方式可以實現資料持久化:rdb(預設) 和 aof 。

redis 為什麼選用 6379 作為預設埠?因為 6379 在手機按鍵上 merz 對應的號碼,而 merz 取自義大利歌女alessia merz的名字。

1、window

-- 服務端

2、開啟乙個 cmd 視窗,使用 cd 命令切換目錄 e:\redis 執行:redis-server.exe redis.windows.conf

-- 客戶端

1、開啟乙個 cmd 視窗,使用 cd 命令切換目錄 e:\redis 執行:redis-cli.exe -h 127.0.0.1 -p 6379 -a 'mypassword'

2、set mykey abc / get mykey

2、linux

--服務端

--客戶端

#1>

cd /usr/local/redis/bin

#2>

./redis-cli

#3>

redis>set foo bar

okredis>get foo

"bar

"

--redis 的 string 可以包含任何資料,比如 jpg 或者序列後的物件,乙個 key 最大能儲存512mb,但是大字串非常不建議。

--hash 是乙個 string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件。每個 hash 可以儲存 2^32-1 鍵值對 。

--list 是簡單的 string 列表,按照插入的順序可以在列表的頭部(左邊)或者尾部(右邊)新增元素。

--set 是 string 型別的無序集合。集合是通過hash表實現的,所以。新增、刪除、查詢的複雜度都是o(1)。

--zset 和 set 一樣也是 string 的型別元素的集合,且不允許重複的隊員,不同的是每個元素都會關聯乙個 double 型別的 score。redis 正是通過 score 來為集合中的成員進行從小到大的排序。分數(score)可以重複。新增元素到集合,元素在集合中存在則對應更新相應的 score。

>key 命名規範:用 ":" 分隔域,用 "." 作為單詞間的連線,如 " order:id:2:price "。不推薦含義不清的 key 和特別長的 key。 

1. 第1段把表名轉換為key字首,如:order

2. 第2段放置用於區分區key的字段,對應 mysql 中的主鍵的列名,如:id

3. 第3段放置主鍵值,如:2,3,4....

4. 第4段寫要儲存的列名,如:price

>只要有可能的話,就盡量使用雜湊鍵而不是字串鍵來儲存鍵值對資料,因為雜湊鍵管理方便、能夠避免鍵名衝突、並且還能夠節約記憶體。 

>如果將 redis 作為 cache 進行頻繁讀寫和超時刪除等,此時應該避免設定較大的 k-v(盡可能使用不要超過 1m 大小的 kv),因為這樣會導致 redis 的 記憶體碎片增加,導致 rss 占用較大,最後被作業系統 oom killer 乾掉。

>盡可能使用批量操作:

>快取。高頻次資料優先訪問 redis,redis 沒有找到再訪問資料庫。

>排行榜。利用 zset 的 score 功能,維護多個維度的資料排行。

>計數器。redis的命令都是原子性的,可以輕鬆地利用 incr,decr 命令來構建計數器系統。

>uniq 操作。redis的 set 資料結構自動去重,不斷地將資料往 set 中扔就行了。 

>**訪問統計等。利用 redis 的  

hyperloglog 高效的實現訪問統計。

>實時訊息系統。redis 的 pub/sub 系統可以構建實時的訊息系統。

>佇列系統。使用 list 可以構建佇列系統,使用 sorted set 甚至可以構建有優先順序的佇列系統。

Android 外掛程式化開發(一) 概要篇

外掛程式化開發分為三種,如下 原理 使用proxyactivity代替要跳轉的activity,使用的上下文環境也是宿主的環境,因為外掛程式並未安裝載入,所以是沒有環境的。service 動態廣播都是需要使用proxyservice proxyreceiver的。靜態廣播 就需要解析apk的mani...

網路產品使用者體驗優化系列 一 概要

網路產品使用者體驗優化系列 一 概要 很高興能在這裡和大家專門溝通使用者體驗方面的話題,特別是能夠收集大家對網路產品使用者體驗的反饋,以及網路產品團隊在使用者體驗方面的優化和更新。這個系列我們只談使用者體驗。什麼是使用者體驗?wikipedia的定義是 user experience ux refe...

機器學習一 機器學習概要

回歸 是指把實函式在樣本點附近加以近似的有監督的模式識別問題。對乙個或多個自變數和因變數之間關係進行建模,求解的一種統計方法。分類 是指對於指定的模式進行識別的有監督的模式識別問題。異常檢測 是指尋找輸入樣本ni 1i 1 n中所包含的異常資料的問題。常採用密度估計的方法 正常資料為靠近密度中心的資...