Redis入門

Redis簡介

Redis是一個內存數據庫(非關係型數據庫),性能比較強

Redis不使用表,不會要求用戶對Redis存儲的不同數據進行關聯

Redis既可以作爲主數據庫也可以作爲其他存儲系統的輔助數據庫使用


一些數據庫和緩存服務器的特性與功能:

名稱類型數據存儲選項查詢類型附加功能
Redis

使用內存存儲

的非關係數據庫

字符串、列表、集合、

散列表、有序集合

每種數據類型都有自

己的專屬命令,

 另外還有批量操作和

不完全的事務支持

發佈與訂閱, 主從複製, 

持久化, 腳本

Memcached

使用內存存儲

的鍵值緩存

鍵值之間的映射

創建命令、讀取命令、

更新命令、刪除命令以

及其他幾個命令

爲提升性能而設

的多線程服務器

MySQL關係數據庫

每個數據庫可以包含多個表, 

每個表可以包含多個行;

 可以處理多個表的視圖(view);

 支持空間(spatial)和第三方擴展

SELECT 、 INSERT 、

 UPDATE 、 DELETE 、

函數、存儲過程

支持ACID性質

(需要使用InnoDB), 

主從複製和主主複製 

PostgreSQL關係數據庫

每個數據庫可以包含多個表, 

每個表可以包含多個行; 

可以處理多個表的視圖; 

支持空間和第三方擴展;

支持可定製類型

SELECT 、 INSERT 、

 UPDATE 、 DELETE 、

內置函數、自定義的存儲過程

支持ACID性質,主從複製,

 由第三方支持的多主複製 

MongoDB

使用硬盤存儲

的非關係文檔存儲

每個數據庫可以包含多個表,

 每個表可以包含多個無schema 

的BSON文檔

創建命令、讀取命令、

更新命令、刪除命令、

條件查詢命令,等等

支持map-reduce操作,

主從複製,分片, 空間索引

Redis提供的5種結構

結構類型結構存儲的值結構的讀寫能力
STRING可以是字符串,整數或者浮點數

對整個字符串或者字符串的其中一部分執行操作;

 對整數和浮點數執行自增或者自減操作

LIST一個鏈表,鏈表的每個節點都包含了一個字符串

從鏈表的兩端推入或者彈出元素

;根據偏移量對鏈表進行修剪(trim); 

讀取單個或者多個元素;

根據值查找或者移除元素

SET包含字符串的無序收集器,並且被包含的而每個字符串都

添加、獲取、移除單個元素;

檢查一個元素是否存在於集合中;

 計算交集、並集、差集;

從集合裏面隨機獲取元素

HASH包含鍵值對的無序散列表

添加、獲取、移除單個鍵值對;

獲取所有鍵值對

ZSEF(有序集合)

字符串成員(member)與浮點數分值(score)之間的有序映射

,元素的排列順序由分值的大小決定

添加、獲取、刪除單個元素;

根據分值範圍或者成員來獲取元素

運行Redis

打開Redis的安裝目錄,找到Redis的客戶端,點擊運行


Redis的字符串(string)



Redis字符串實例:

#密碼:auth "你的密碼"
auth "123456"
#設置值(k:hello,v:world)
set hello world
#獲取值(k:hello)
get hello
#刪除值(k:hello)
del hello
#獲取值(k:hello)
get hello


Redis列表(list)



Redis列表實例:

#RPUSH(將元素推入列表的右端)
rpush list-key item
#LPUSH(將元素推入列表的左端)
lpush list-key item4
rpush list-key item1
rpush list-key item2
rpush list-key item3
#lrange獲取列表在給定範圍上的所有值
lrange list-key 0 -1
#取出列表上面的單個元素
lindex list-key 1
#lpop從列表左端彈出1個元素
lpop list-key
#rpop從列表右端彈出1個元素
rpop list-key

Redis集合(set)



Redis集合實例:

#添加元素到集合
sadd set-key item
sadd set-ket item1
sadd set-key item2
sadd set-key item3
sadd set-key item4
sadd set-key item5
#返回集合所有元素
smembers set-ket
#檢查某個元素是否都在集合中
sismember set-key item6
sismember set-key item5
#如果指定的元素在集合中則移除
srem set-key item5

Redis散列(hash)



Redis散列實例:

#在散列裏面關聯給定的鍵值對
hset hash-key sub-key value1
hset hash-key sub-key2 value2
hset hash-key sub-key3 value3
#獲取指定的散列鍵的值
hgetall hash-key
#獲取散列中所有的鍵值對
hget hash-key sub-key1
#如果指定的鍵存在於散列裏面,那麼移除這個鍵
hdel hash-key sub-key2

Redis有序集合(sorted set)



Redis有序集合:

#講一個帶有定分值的成員添加到有序集合裏面
zadd zset-key 728 member1
zadd zset-key 982 member0
zadd zset-key 982 member0
#根據元素在有序排列中所處的位置,從有序集合裏面獲取多個元素
zrange zset-key 0 -1 withscores
#獲取有序集合在給定分值內的所有元素
zrangebyscore zset-key 0 800 withscores
#移除有序集合中指定的成員
zrem zset-key member1

發佈了40 篇原創文章 · 獲贊 27 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章