五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

高級測試都要懂的 redis 數據庫操作

2020-09-25 14:11 作者:軟件測試檸檬班Pro  | 我要投稿

Redis 是一個遠程內存數據庫,主要用來提高軟件的讀寫性能。Redis 主要用來做處理緩存,但是他的作用遠不止于此。

● 緩存數據

這是 Redis 最常被記住的一個應用場景,因為 Redis 數據是存在內存當中,效率非常高。Memcache 也可以用來做緩存數據庫,不過 Redis 因為豐富的數據類型,有些操作會比 Memcache 方便很多。


●?計數器,比如用戶訪問了多少次,點贊數統(tǒng)計

服務或者軟件產品通常需要對用戶行為進行跟蹤和統(tǒng)計,便于后期進行數據統(tǒng)計和分析。想用戶點擊,轉發(fā),點贊等行為通常會被記錄下來。Redis 可以利用原子性的自增操作,輕松記錄這行高頻寫入行為。


●?限速器,比如限制 IP 的訪問頻率

時候為了緩解服務器壓力,會對一些不必要的或者瘋狂的用戶行為進行限制。比如爬蟲和限購的搶購活動。


●?任務隊列(task queue)

我們在使用各種軟件的時候經常會收到服務器推動給我們的消息,比如到貨通知,內容更新等。這些消息通常是由服務端推送的。Redis 的 pub/sub 能夠支持任務隊列,但是并不能保證每條消息都能完成,如果需要更穩(wěn)定精確的任務隊列,可以使用 rabbitmq 等。

●?排行榜

Redis 的有序集合類型非常適合處理榜單和排序

● 好友關系處理

Redis 的集合類型可以處理交集并集,篩選共同好友,共同愛好之類的一些操作。

● 搜索服務

正因為 Redis 的性能如此卓越,很多公司都非常看重 Redis 的使用和優(yōu)化。做性能測試的可能會經常聽過緩存的一些問題,比如緩存雪崩、緩存穿透、緩存擊穿等。

這些都是由于在 Redis 這樣的緩存數據庫 key 設置或者過期時間設置不當造成的問題?,F在,無論是開發(fā)人員,還是測試人員,都應該接觸下 Redis 的使用。

windows 用戶可以在 github 頁面?下載解壓。解壓后可以得到服務端和客戶端的可執(zhí)行文件。

在當前目錄下運行 redis-server.exe 啟動 Redis 服務,如果覺得麻煩可以配置環(huán)境變量。

當服務啟動以后,可以通過 redis-cli.exe 啟動客戶端

如果你是使用編程語言操作 Redis ,可以下載對應語言的包,比如 python 的 Redis 客戶端:

Redis 當中的數據都是通過 key-value 的形式存儲的, key 是在 Redis 數據庫當中的標識,value 表示要存儲的數據。

數據分為以下幾種:

● 字符串

●?列表

●?散列

●?集合

●?有序集合

以下過程使用 python 存儲一個字符串類型的數據,然后讀取出來:

list 的操作函數一般以 l 開頭, 也有個別例外。列表類型主要用于存儲有序數據,比如任務隊列。列表數據的操作有:

● lpush, 左推入

●?rpush, 右推入

●?lrange, 獲取指定范圍的值

●?lindex, 獲取指定索引的單個值

●?lpop, 左彈出

●?rpop, 右彈出

集合的操作函數一般以 s 開頭, 集合數據是沒有順序的,但是不能重復而且可以很靈活的使用交集,并集操作。

集合的基礎操作 :

● sadd, 添加

● smembers, 獲取所有成員, 如果集合包含元素比較多,速度會比較慢。

● sismember, 判斷是否為成員

● srem, 如果元素存在,移除。set remove

hash 和 python 中的字典很像,主要用來存儲多個鍵值對的映射。因為 Redis 本身就是使用鍵值對形式存儲數據,所以 hash 可以理解成是 Redis 的子應用,可以對其中的任何數字值進行自增操作。

● hash 的操作函數一般以 h 開頭,?

● hset('redis_key', key, value, mapping=None)

● hget,

● hgetall

● hdel

有序集合既可以像列表那樣通過索引獲取,也可以像hash通過key獲取。有序集合的key叫成員(member), value叫分值(score)。key不能重復,value必須為浮點數。


sorted set 的操作函數一般以 z 開頭, :

● zadd('redis_key', mapping=None)

●?zrange('redis_key', start_index, end_index, withscores=True)

●?zrangebyscores('redis_key', start_score, end_score, withscores=True)

?zrem('redis_key', 'zkey')

說明:本文為檸檬班雨澤老師原創(chuàng),轉載需注明出處!

高級測試都要懂的 redis 數據庫操作的評論 (共 條)

分享到微博請遵守國家法律
长丰县| 郯城县| 大连市| 苍南县| 吴堡县| 荆州市| 峡江县| 陆良县| 三亚市| 遂平县| 洞头县| 丰都县| 荆门市| 台州市| 滨州市| 鞍山市| 新闻| 合水县| 泗洪县| 华容县| 丰都县| 响水县| 汪清县| 米易县| 浦城县| 肥西县| 含山县| 伊金霍洛旗| 探索| 邢台县| 石狮市| 大安市| 乐昌市| 临夏县| 肇源县| 沙河市| 莱州市| 清河县| 海林市| 南木林县| 遵化市|