您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

02 redis消息訂閱與發布 場景(Redis 都有哪些應用場景?)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-31 12:00:32【】7人已围观

简介同時支持ZeroMQ和Netty作為傳輸模塊)。3.4ActiveMQActiveMQ是Apache下的一個子項目。類似于ZeroMQ,它能夠以代理人和點對點的技術實現隊列。同時類似于RabbitMQ

同時支持ZeroMQ和Netty作為傳輸模塊)。

3.4ActiveMQ

ActiveMQ是Apache下的一個子項目。 類似于ZeroMQ,它能夠以代理人和點對點的技術實現隊列。同時類似于RabbitMQ,它少量代碼就可以高效地實現高級應用場景。

3.5Kafka/Jafka

Kafka是Apache下的一個子項目,是一個高性能跨語言分布式發布/訂閱消息隊列系統,而Jafka是在Kafka之上孵化而來的,即Kafka的一個升級版。具有以下特性:快速持久化,可以在O(1)的系統開銷下進行消息持久化;高吞吐,在一臺普通的服務器上既可以達到10W/s的吞吐速率;完全的分布式系統,Broker、Procer、Consumer都原生自動支持分布式,自動實現負載均衡;支持Hadoop數據并行加載,對于像Hadoop的一樣的日志數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka通過Hadoop的并行加載機制統一了在線和離線的消息處理。Apache Kafka相對于ActiveMQ是一個非常輕量級的消息系統,除了性能非常好之外,還是一個工作良好的分布式系統。

上圖中一個topic配置了3個partition。Partition1有兩個offset:0和1。Partition2有4個offset。Partition3有1個offset。副本的id和副本所在的機器的id恰好相同。

如果一個topic的副本數為3,那么Kafka將在集群中為每個partition創建3個相同的副本。集群中的每個broker存儲一個或多個partition。多個procer和買粉絲nsumer可同時生產和消費數據。

redis數據類型和應用場景

Redis是當前比較熱門的NOSQL系統之一,它是一個開源的使用ANSI c語言編寫的key-value存儲系統(區別于MySQL的二維表格的形式存儲。),Redis數據都是緩存在計算機內存中并且它會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,實現數據的持久化。談到存儲數據,那么必然要涉及到相關的數據類型,redis主要有以下數據類型:

描述:string 是 redis 最基本的類型,你可以理解成與 Memcached 一模一樣的類型,一個 key 對應一個 value。value其實不僅是String,也可以是數字。string 類型是二進制安全的。意思是 redis 的 string 可以包含任何數據。比如jpg圖片或者序列化的對象。string 類型是 Redis 最基本的數據類型,string 類型的值最大能存儲 512MB。

常用命令:get、set、incr、decr、mget等。

應用場景:規key-value緩存應用。常規計數: 點贊數, 粉絲數。

描述: hash 是一個鍵值(key => value)對集合。Redis hash 是一個 string 類型的 field 和 value 的映射表,hash 特別適合用于存儲對象。

常用命令:hget,hset,hgetall 等。

應用場景:存儲部分變更數據,如商品信息等。

描述:list 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。列表最多可存儲 232 - 1 元素 (4294967295, 每個列表可存儲40多億)。

常用命令:lpush(添加左邊元素),rpush,lpop(移除左邊第一個元素),rpop,lrange(獲取列表片段,LRANGE key start stop)等。

應用場景:消息隊列,關注列表,粉絲列表等都可以用Redis的list結構來實現。

描述: set是string類型的無序集合。集合是通過hashtable實現的,概念和數學中個的集合基本類似,可以交集,并集,差集等等,set中的元素是沒有順序的。所以添加,刪除,查找的復雜度都是O(1)。

常用命令:sadd,spop,smembers,sunion 等。

應用場景:交集,并集,差集(微博中,可以將一個用戶所有的關注人存在一個集合中,將其所有粉絲存在一個集合。Redis還為集合提供了求交集、并集、差集等操作,可以非常方便的實現如共同關注、共同喜好、二度好友等功能,對上面的所有集合操作,你還可以使用不同的命令選擇將結果返回給客戶端還是存集到一個新的集合中)

描述:zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員。不同是可以打分(排序)

常用命令:zadd,zrange,zrem,zcard等

應用場景:排行榜,帶權重的消息隊列

描述:Bitmaps這個“數據結構”可以實現對位的操作。 把數據結構加上引號主要因為:

Bitmaps本身不是一種數據結構, 實際上它就是字符串 , 但是它可以對字符串的位進行操作。

Bitmaps單獨提供了一套命令, 所以在Redis中使用Bitmaps和使用字符串的方法不太相同。 可以把Bitmaps想象成一個以位為單位的數組, 數組的每個單元只能存儲0和1, 數組的下標在Bitmaps中叫做偏移量。其實大多數Bitmaps的應用場景可以用其他數據類型來實現,用Bitmaps主要是存儲空間占用特別少

常用命令:getbit key offset;setbit key offset value

應用場景:統計用戶訪問,統計電影某天的的播放量

描述:Redis 在 2.8.9 版本添加了 HyperLogLog 結構。Redis HyperLogLog 是用來做基數統計的算法,HyperLogLog 的優點是,在輸入元素的數量或者體積非常非常大時,計算基數所需的空間總是固定 的、并且是很小的。在 Redis 里面,每個 HyperLogLog 鍵只需要花費 12 KB 內存,就可以計算接近 2^64 個不同元素的基 數。這和計算基數時,元素越多耗費內存就越多的集合形成鮮明對比。但是,因為 HyperLogLog 只會根據輸入元素來計算基數,而不會儲存輸入元素本身,所以 HyperLogLog 不能像集合那樣,返回輸入的各個元素。這類數據結構的基本大的思路就是使用統計概率上的算法,犧牲數據的精準性來節省內存的占用空間及提升相關操作的性能

常用命令:pfadd, pf買粉絲unt,pfmerge

應用場景:統計網站的每日UV

描述:GEO功能在Redis3.2版本提供,支持存儲地理位置信息用來實現諸如附近位置、搖一搖這類依賴于地理位置信息的功能.geo的數據類型為zset.

常用命令:geoadd,geopos, geodist

應用場景:附近位置、搖一搖

參考列表:

Redis五種數據類型及應用場景

很赞哦!(6227)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:河南平顶山鲁山县

工作室:小组

Email:[email protected]