自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

談?wù)凴edis快速入門及應(yīng)用

存儲 存儲軟件 Redis
Redis是一個開源的Key-Value存儲,但又不僅僅是Key-Value存儲,用官網(wǎng)上的話來說,Redis是一個數(shù)據(jù)結(jié)構(gòu)存儲,可用作數(shù)據(jù)庫、緩存和消息中間件。

[[384094]]

本文轉(zhuǎn)載自微信公眾號「UP技術(shù)控」,作者conan5566 。轉(zhuǎn)載本文請聯(lián)系UP技術(shù)控公眾號。 

簡介

Redis是一個開源的Key-Value存儲,但又不僅僅是Key-Value存儲,用官網(wǎng)上的話來說,Redis是一個數(shù)據(jù)結(jié)構(gòu)存儲,可用作數(shù)據(jù)庫、緩存和消息中間件。相對于傳統(tǒng)的Key-Value存儲Memcached來說,Redis具有如下特點(diǎn):

  • 速度快
  • 豐富的數(shù)據(jù)結(jié)構(gòu),除String之外,還有List、Hash、Set、Sorted Set
  • 單線程,避免了線程切換和鎖的性能消耗
  • 原子操作
  • 可持久化(RDB與AOF)
  • 發(fā)布/訂閱
  • 支持Lua腳本
  • 分布式鎖
  • 事務(wù)
  • 主從復(fù)制與高可用(Redis Sentinel)
  • 集群(3.0版本以上)

數(shù)據(jù)結(jié)構(gòu)

1、String

這是最簡單的Redis類型。如果只使用這種類型,Redis就像一個可持久化的Memcached服務(wù)器。

2、List

Redis的List是基于雙向鏈表實(shí)現(xiàn)的,可以支持反向查找和遍歷。

常用案例:聊天系統(tǒng)、社交網(wǎng)絡(luò)中獲取用戶最新發(fā)表的帖子、簡單的消息隊(duì)列、新聞的分頁列表、博客的評論系統(tǒng)。

3、Hash

Hash是一個String類型的field和value之間的映射表,請見下圖,類似于.NET中的Hashtable和Dictionary。主要用來存儲對象,可以避免序列化的開銷和并發(fā)修改控制的問題。

4、Set

Set也是一個列表,不過它的特殊之處在于它是可以自動排重的:當(dāng)需要存儲一個列表數(shù)據(jù),而又不希望出現(xiàn)重復(fù)的時候,Set是一個很好的選擇(比如ID的集合)。并且Set提供了判斷某個成員是否在一個Set集合內(nèi)的接口,這也是List所沒有的。

5、Sorted Set

Sorted Set和Set的使用場景類似,區(qū)別是Sorted Set會根據(jù)提供的score參數(shù)來進(jìn)行自動排序。當(dāng)你需要一個有序的并且不重復(fù)的集合列表,那么就可以選擇Sorted Set數(shù)據(jù)結(jié)構(gòu)。常用案例:游戲中的排行榜。

開源客戶端

StackExchange.Redis:

https://github.com/StackExchange/StackExchange.Redis?spm=5176.100239.blogcont272212.10.IsQwET&file=StackExchange.Redis

基本用法

StackExchange.Redis中的中心對象是名稱空間中的ConnectionMultiplexer類StackExchange.Redis。這是隱藏多個服務(wù)器詳細(xì)信息的對象。由于ConnectionMultiplexer功能很多,因此可以在調(diào)用方之間共享和重用它。您不應(yīng)該創(chuàng)建ConnectionMultiplexer每個操作。它是完全線程安全的,并且可以用于此用途。在所有后續(xù)示例中,將假定您已ConnectionMultiplexer保存一個實(shí)例以供重用。但是現(xiàn)在,讓我們創(chuàng)建一個。這可以使用ConnectionMultiplexer.Connect或ConnectionMultiplexer.ConnectAsync傳入配置字符串或ConfigurationOptions對象來完成。配置字符串可以采用逗號分隔的一系列節(jié)點(diǎn)的形式,因此讓我們僅通過默認(rèn)端口(6379)連接到本地計算機(jī)上的實(shí)例:

  1. using StackExchange.Redis; 
  2. ... 
  3. ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); 
  4. // ^^^ store and re-use this!!! 

需要注意的是ConnectionMultiplexer工具IDisposable,可以在不再需要處置。這是故意不顯示using語句用法的原因,因?yàn)镃onnectionMultiplexer要重用此對象非常少見,因此您希望簡短地使用它。

更復(fù)雜的情況可能涉及主/副本設(shè)置。對于此用法,只需指定組成該邏輯Redis層的所有所需節(jié)點(diǎn)(它將自動識別主節(jié)點(diǎn)):

ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("server1:6379,server2:6379");

如果發(fā)現(xiàn)兩個節(jié)點(diǎn)都是主節(jié)點(diǎn),則可以有選擇地指定一個決勝鍵,該鍵可用于解決問題,但是幸運(yùn)的是這種情況很少見。

有了之后ConnectionMultiplexer,您可能需要做以下三件事:

  • 訪問redis數(shù)據(jù)庫(請注意,在集群的情況下,單個邏輯數(shù)據(jù)庫可能分布在多個節(jié)點(diǎn)上)
  • 利用redis的發(fā)布/訂閱功能
  • 訪問單個服務(wù)器以進(jìn)行維護(hù)/監(jiān)視

 

責(zé)任編輯:武曉燕 來源: UP技術(shù)控
相關(guān)推薦

2015-10-29 15:36:19

Redis入門

2009-06-10 15:14:00

2009-09-25 10:24:40

Androind入門教OPhone

2020-07-30 07:30:17

存儲技術(shù)數(shù)據(jù)

2023-06-27 08:34:32

2020-04-14 14:30:43

Redis數(shù)據(jù)庫開源

2013-01-17 15:51:42

Android開發(fā)應(yīng)用程序組件

2020-09-25 11:50:12

前后端分離架構(gòu)Web

2011-11-29 12:27:54

2009-09-24 15:27:41

Hibernate查詢

2010-06-24 13:35:53

GRE協(xié)議

2011-03-08 16:50:35

2021-05-07 08:02:53

Sentinel 流量服務(wù)

2009-10-26 10:44:27

VB.NET API函

2020-03-18 13:28:29

SpringDDDWeb

2016-07-15 09:58:00

應(yīng)用交付單邊加速太一星晨

2012-05-29 21:38:14

Metro UI

2020-11-25 19:05:50

云計算SaaS公有云

2019-11-13 15:44:17

Kafka架構(gòu)數(shù)據(jù)

2021-01-15 09:30:02

Tomcat ApacheJavaServer
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號