透過命令與運用場景,帶你了解Redis中的五大基礎類型
這篇文章透過指令和運用場景,帶大家了解Redis中的五大基礎類型,指令和實作比較多,希望對大家有幫助!
redis 傳統5 大數據型別的運用
redis 傳統5 大數據型別的落地應用
Redis 介紹:
Redis 是一個開源(BSD授權)的,記憶體中的資料結構儲存系統,它可以用作資料庫、快取和訊息中間件。它支援多種類型的資料結構,如字串(strings), 雜湊(hashes),列表(lists), 集合(sets), 有序集合(sorted sets)] 與範圍查詢, bitmaps, hyperloglogs 和地理空間(geospatial) 索引半徑查詢。 Redis 內建了複製(replication),LUA腳本(Lua scripting), LRU驅動事件(LRU eviction),事務(transactions) 和不同級別的磁碟持久化(persistence), 並通過Redis哨兵(Sentinel) 和自動分區(Cluster )提供高可用性(high availability)。 【相關建議:Redis影片教學】
redis 指令查詢:http://www.redis.cn/commands.html
備註:redis 指令不區分大小寫,而key 是區分大小寫的
查詢指令幫助:
#help @類型名詞
##範例:
最常用## set key vuue
getkey
同時設定/取得多個鍵值MSET key value [key value .. .]
MGET key [key ,,,]
#數值增減遞增數字incr key
#增加指定的整數incrby key increment
遞減數值decr key
減少指定的整數decrby key decrement
#取得字元長度STRLEN key
分散式鎖定setnx key value
set key value [EX seconds] [PX milliseconds] [NX|XX]
- #PX: key自多少毫秒後過期
- NX: 當key 不存在的時候,才建立key. 效果等同於setnx
- XX: 當key 存在的時候,覆蓋key
#運用場景
#商品編號、訂單號碼採用INCR 指令產生- 是否喜歡文章按讚
- 閱讀數:只要點擊了rest 位址,直接使用incr key 指令增加一個數字1,完成記錄數字。
命令實踐
#hash 雜湊類型
Map
一次設定一個欄位值# HSET key field value
一次取得一個欄位值HGET key field
##一次設定多個欄位值
#HMSET key field value [fild value ...]
一次取得多個欄位值
HMGET key field [field ...]
取得所有欄位值
hgetall key
# 取得某個key 內的全部數量
hlen
刪除一個key
hdel
#指令示範
購物車的早期,目前中小廠可以使用
新增商品--> hset shopcar:uid1024 334488 1 新增商品--> hset shopcar:uid2014 334477 1#增加商品數量--> hincrby shopcar:uid1024 3344771總數--> hlen shopcar:uid1024
全部選擇--> hgetall shopcar:uid1024
list 清單類型
在清單左邊加入元素
##lpush key value [value ...]向清單右邊新增元素
rpush key value [value ...]
查看清單
lrange key start stop
取得清單中元素的個數
llen key
指令使用
應用場景
微信文章訂閱公眾號
2、 作者追蹤了他們兩個,只要他們發布了新的文章,就會推送到我的list
lpush likearticle: uid1024 11 22#3、查看作者自己的訂閱號碼的全部文章,類似分頁,下面0-10 就是一次顯示10 條lrange likearticle:uid1024 0 10
set 不重複列表類型
新增元素sadd key member [member ...]
刪除元素
# #srem key member [member ...]
取得集合的所有元素
#smembers key
判斷元素是否在集合中
sismember key member
#取得集合中的元素數量
scard key
從集合中隨機彈出一個元素, 元素不刪除
- srandmember key [數字]
- 從集合中隨機彈出一個元素,出一個刪除
#spop key [數字]
集合運算- #集合的差集運算A - B
屬於A 但不屬於B 的元素構造成的集合
- sdiff key [key ...]
- 集合的交集元算A ^ B
屬於A 同時也屬於B 共同擁有的元素
simter key [key ...]集合的並集運算A v B
屬於A 或屬於B 的元素合併後的集合
#1、用戶id,立即參與,sadd key 用戶id
我關注了華為餘承東, 餘承東也關注了張召動, 我和余總有共同的愛好sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7sismember s1 3sismember s2 3- QQ內推可能認識的人
- // 共同好友
- sdiff s1 s2
- 1、 在有序集合中加入一個元素和該元素的分數
- 3、 依照元素分數從小到達的順序傳回索引從strat 到stop 之間的所有元素
##zrange key start stop [WITHSORES]
- 4、取得元素的分數
zscore key member [member ...]
- 5、刪除元素
zrem key member [member ...]
#######6、 取得指定分數範圍的元素#########zrangebyscore key min max [ WITHSCORES] [LIMIT offset count]#########7、增加某個元素的分數#########zincrby key increment member##########8、 取得集合中元素的數量#########zcard key#########9、取得指定分數範圍內的元素數量#########zcount key min max## #######10、依照排名範圍刪除元素###- zremrangebyrank key start stop
11、取得元素的排名
從小到大zrank key member
#從大到小zrevrank key member
#應用程式場景
1、更具商品銷售將商品排序顯示
思路:定義商品銷售排行榜(sorted set 集合),key 為goods:sellsort, 分數為商品銷售數量。
商品編號1001 的銷售量是9 , 商品編號1002 的銷售量是15 | zadd goods:sellsort 9 1001 15 1002
有一個顧客又買了2 件商品1001 , 商品編號是1001 響亮增加2 | zincrby goods:sellsort 2 10001
求商品銷量前10 名zrange goods:sellsort 0 10 withscores
2、抖音熱搜
1、點擊影片
ZINCRBY hotavi:20220203 1 八百
ZINCRBY hotavi :20220203 15 八百2 花木蘭
2、展示當日排行前10 條
zrevrange hotavi:20220203 0 9 withscores
更多程式相關知識,請造訪: 程式設計入門! !
以上是透過命令與運用場景,帶你了解Redis中的五大基礎類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Redis集群模式通過分片將Redis實例部署到多個服務器,提高可擴展性和可用性。搭建步驟如下:創建奇數個Redis實例,端口不同;創建3個sentinel實例,監控Redis實例並進行故障轉移;配置sentinel配置文件,添加監控Redis實例信息和故障轉移設置;配置Redis實例配置文件,啟用集群模式並指定集群信息文件路徑;創建nodes.conf文件,包含各Redis實例的信息;啟動集群,執行create命令創建集群並指定副本數量;登錄集群執行CLUSTER INFO命令驗證集群狀態;使

如何清空 Redis 數據:使用 FLUSHALL 命令清除所有鍵值。使用 FLUSHDB 命令清除當前選定數據庫的鍵值。使用 SELECT 切換數據庫,再使用 FLUSHDB 清除多個數據庫。使用 DEL 命令刪除特定鍵。使用 redis-cli 工具清空數據。

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

在CentOS系統上,您可以通過修改Redis配置文件或使用Redis命令來限制Lua腳本的執行時間,從而防止惡意腳本佔用過多資源。方法一:修改Redis配置文件定位Redis配置文件:Redis配置文件通常位於/etc/redis/redis.conf。編輯配置文件:使用文本編輯器(例如vi或nano)打開配置文件:sudovi/etc/redis/redis.conf設置Lua腳本執行時間限制:在配置文件中添加或修改以下行,設置Lua腳本的最大執行時間(單位:毫秒)

使用 Redis 命令行工具 (redis-cli) 可通過以下步驟管理和操作 Redis:連接到服務器,指定地址和端口。使用命令名稱和參數向服務器發送命令。使用 HELP 命令查看特定命令的幫助信息。使用 QUIT 命令退出命令行工具。

Redis計數器是一種使用Redis鍵值對存儲來實現計數操作的機制,包含以下步驟:創建計數器鍵、增加計數、減少計數、重置計數和獲取計數。 Redis計數器的優勢包括速度快、高並發、持久性和簡單易用。它可用於用戶訪問計數、實時指標跟踪、遊戲分數和排名以及訂單處理計數等場景。

Redis數據過期策略有兩種:定期刪除:定期掃描刪除過期鍵,可通過 expired-time-cap-remove-count、expired-time-cap-remove-delay 參數設置。惰性刪除:僅在讀取或寫入鍵時檢查刪除過期鍵,可通過 lazyfree-lazy-eviction、lazyfree-lazy-expire、lazyfree-lazy-user-del 參數設置。

在Debian系統中,readdir系統調用用於讀取目錄內容。如果其性能表現不佳,可嘗試以下優化策略:精簡目錄文件數量:盡可能將大型目錄拆分成多個小型目錄,降低每次readdir調用處理的項目數量。啟用目錄內容緩存:構建緩存機制,定期或在目錄內容變更時更新緩存,減少對readdir的頻繁調用。內存緩存(如Memcached或Redis)或本地緩存(如文件或數據庫)均可考慮。採用高效數據結構:如果自行實現目錄遍歷,選擇更高效的數據結構(例如哈希表而非線性搜索)存儲和訪問目錄信
