redis 使用入門 構件

2021-09-20 06:41:32 字數 1301 閱讀 1044

redis擁有與關係型資料庫一樣的基礎概念。典型的使用場景就是將乙個應用的所有資料歸在一起,以與其他應用的資料區分開。

redis中的資料庫用數字作為標示符,預設資料庫的標示為0。使用下面的命令選擇具體的資料庫:

select
在redis中,key可以包含strings, hashes, lists, sets, sorted sets, bitmaps以及hyperloglogs。但就目前來說,知道key看起來像 "users:leto" 就夠了。其中leto是使用者名稱,冒號沒有任何特殊含義,但就redis而言,使用分隔符是一種常見的組織key的方式。

value可以是任何東西,字串、數字、或序列化後的物件(例如:xml、json或其他格式)。多數情況下,redis會把它們當位元組陣列對待,而不會關心它們具體是什麼。

往redis存入乙個鍵值對:

set # 示例

set users:leto ''

根據key讀取值:

get users:leto
redis不支援對值進行查詢,比如查詢居住在dune星球上的使用者。因為redis從不需要去讀取或理解儲存的值,所以值才可以是任何東西。記住這點有助於我們在這個新世界中將心思放在考慮如何建模上。

redis是記憶體持久儲存(in-memory persistent store)。說到持久化,預設情況下,redis根據有多少key已經變化來決定是否需要對資料庫做快照並儲存至磁碟。你可以為它配置這樣的快照策略:如果x個key發生了變化,就每y秒儲存一次資料庫。預設策略為,如果1000個或更多的key發生了變化,就每60秒儲存一次快照;如果9個或更少的key發生變化,就每15分鐘做一次。

說到記憶體,redis將所有資料保持在記憶體中。這就意味著執行redis的成本比較高,畢竟ram仍然是伺服器硬體中最昂貴的部分。

一些開發者已經對資料會占用多小的空間失去了感覺,莎士比亞的所有作品大概占用5.5m,壓縮後降至2。至於可伸縮性(scaling),其他方案趨向受限於io或cpu(io- or cpu-bound)。哪個限制 (ram or io) 將需要你擴充套件出更多的機器實際上取決於你資料的型別和你正在任何儲存和查詢它。除非你正在儲存大的多**檔案,否則儲存資料在記憶體中很可能不是什麼問題。對於那些這一點確實是個問題的應用,你可能需要使用io-bound的方案,而非memory-bound。

此外,還可考慮對儲存資料進行壓縮或解壓縮,以處理時間換取ram。

redis雖然支援虛擬記憶體,但是這個特性被redis開發者看做是乙個失敗,不贊成使用該特性。

JMS入門 一 基本構件

連線工廠是客戶用來建立連線物件的,例如activemq提供的activemqfactoryconnection jms session 是生產和消費的乙個單執行緒上下文。會話用於建立訊息生產者 producer 訊息消費者 consumer 訊息 message 等。會話提供了乙個事務性的上下文,在...

Redis入門和安裝使用

redis是用c語言開發的乙個開源的高效能鍵值對 key value 資料庫。它通過提供多種鍵值資料型別來適應不同場景下的儲存需求,目前為止redis支援的鍵值資料型別如下 1 字串型別 2 雜湊型別 hash被 string和json 取代了 3 列表型別 4 集合型別 5 有序集合型別。2 通過...

Redis快速入門及使用

redis是一種支援分布式的nosql資料庫,他的資料是儲存在記憶體中,同時redis可以定時把記憶體資料同步到磁碟,即可以將資料持久化,並且他比memcached支援更多的資料結構 string,list列表 佇列和棧 set 集合 sorted set 有序集合 hash hash表 redis...