搜尋
首頁資料庫RedisRedis基本資料類型與操作(總結分享)

這篇文章為大家帶來了關於Redis的相關知識,其中主要介紹了關於基本資料類型和操作的相關內容,下面一起來看一下,希望對大家有幫助。

Redis基本資料類型與操作(總結分享)

推薦學習:Redis影片教學

Redis 簡介

redis是個主要由開發者Salvatore Sanfilippo (Antirez)開發的開源記憶體資料結構記憶體,用於改善其網站的可伸縮性,可以用作資料庫、快取和訊息代理等,可以在專案中結合使用Redis。

Redis 有著豐富的資料結構、優秀的速度、齊全的功能,眾多公司都在使用Redis,它有著如下的特點:

  • 快速
  • NoSQL 資料庫
  • 支援眾多環境

Redis 是記憶體資料庫,這表示所有的資料都保存在記憶體中,而不是硬碟上(當然也支援硬碟的全量備份和增量備份)。記憶體的特點是能夠支援快速存取和快速搜索,但也受空間限制。

在資料庫架構中,Redis 通常位於客戶端和資料庫之間,以減輕 NoSQL 資料庫或應用程式的負載,並減少快取時的資料存取延遲。

Redis 的主要用途

  • 佇列
  • 發布/訂閱
  • ##即時分析
  • 機器學習:為機器學習快速處理大量、多樣且快速的資料
  • 地理空間處理
  • #排行榜/計數(也就是日常所見的熱搜)
  • 會話快取
  • 整頁快取

使用Redis 的公司

Who uses Redis?##Redis 使用與啟動

網路上有很多安裝的教學課程,這裡以Mac 端為例,在安裝完Redis 伺服器之後,就可以透過以下指令啟動Redis 伺服器:

redis-server

並透過以下指令啟動redis -cli 用戶端:

redis-cli -h 127.0.0.1 -p 6379

如圖所示:

#現在我們可以透過Redis 的PING 指令接受一個可選的訊息作為參數,這個命令通常用於測試客戶端和伺服器之間的連線是否正常,如果使用者以無參數形式執行這個命令,那麼伺服器在連線正常的情況下,將向客戶端傳回PONG 作為回覆:

#

127.0.0.1:6379> PINGPONG
實際測試如下:

Redis 初步介紹工作完成,我們來看看Redis 都有哪些基本的資料結構機器常見操作。

Redis的基本資料型別

字串
  • 雜湊
  • 清單
  • 集合
  • 有序集合
  • HyperLogLog
  • 點陣圖

本文將介紹前五種常見的資料結構,後續更多的類型在其他文章中單獨介紹和說明,常見的五種基本資料類型如下。

字串

字串(string)是 Redis 最基本的鍵值對類型,這種類型既可以保持普通文字,也可以保存序列化的二進位資料。

字串類型會在資料庫中把單獨的一個鍵和單獨的一個值關聯起來,被關聯的鍵和值既可以是普通的文字數據,也可以是圖片、視頻、音頻、壓縮文件等更為複雜的二進位資料。字串類型最大可以儲存 512M 資料。

字串一些常見動作

  • SET 指令:為一個字串設定對應的值,如SET number "10086"
  • GET 指令:取得鍵對應的值
    127.0.0.1:6379> SET number "10086"OK127.0.0.1:6379> GET number"10086"127.0.0.1:6379>
  • GETRANGE:取得截取字串內容
  • STRLEN:取得字串長度,如STRLEN email
  • SETEX:設定有過期時間(秒)的KEY-VALUE,如SETEX city 5 Beijing
  • 秒殺活動PSETEX 設定毫秒###
    • MSET:设置多个 KEY-VALUE ,如 MSET username jack sex male age 24
    • MGET:获取多个 VALUE,如 MGET username sex age
    • APPEND: 用于在字符串结尾追加内容
    • INCR:数字自增加1 ,如 INCR number
    127.0.0.1:6379> INCR number(integer) 10087127.0.0.1:6379>
    • INCRBY:数字加上指定的整数值
    • INCRBYFLOAT:数字加上指定的浮点数
    • DECR:数字自增减一
    • DECBY:数字减去指定的整数值

    这些命令,大家都可以自己在。 Redis 客户端进行测试。

    哈希类型

    用来保存更复杂的结构化数据

    • HSET:设置哈希表字段
    • HMSET:设置哈希表多个字段
    • HGET:获取哈希表字段值,如 HGET 8000 ename
    • HMGET:获取多个哈希表字段值,如 HMGET 80000 ename job deptno
    • HGETALL:获取所有哈希表字段值
    • HKEYS:获取所有哈希表字段名
    • HLEN:哈希表中的字段数量
    • HEXISTS:判断哈希表是否存在某个字段
    • HVALS:获取哈希表中的所有字段值
    • HDEL:删除哈希表的字段
    • HINCRBY:让哈希表某个字段值加上指定的整数值,如 HINCRBY 8000 deptono 10
    • HINCRBYFLOART:让哈希表某个字段值加上指定的浮点数

    列表类型

    当我们需要向 VALUE 保存序列化的数据,可以使用列表类型

    RPUSH dname 技术部 后勤部 售后部
    LPUSH dname 秘书处
    LSET dname 2 销售部
    LRANGE dname 0 -1
    • RPUSH:在列表末尾新增值
    • LPUSH:在列表开头新增值
    • LLEN:获取列表长度
    • LINDEX:获取列表某个元素,如 lindex dname 0
    • LINSERT:在某个位置插入元素,如 linsert dname before 秘书处 董事会
    • LPOP:删除最左边的元素 LPOP dname
    • RPOP:删除列表最右边的元素 RPOP dname
    • LREM:删除列表某个元素,如
    RPUSH employee Scott
    RPUSH employee Jack
    RPUSH employee Scott
    
    LREM employee 1 Scott # 删除第一个Scott,不是指索引为一

    集合类型

    假如要求数据不允许重复,则可以使用集合类型。

    集合操作

    SADD empno 8000SADD empno 8001SADD empno 8002SADD empno 8003 8004 8005SMEMBERS empno
    • SADD:将给定值添加到集合
    • SCARD:获取集合长度,如: SCARD empno
    • SISMEMBER:判断是否含有某个元素,如 SISMENBER empno 8000
    • SREM:删除某个元素
    • SPOP:随机删除并返回集合的某个元素,如 SPOP empno
    • SRANDMEMBER:随机返回集合中的元素,如 SRANDMEMBER empno 5
    • SUNION:组合两个或多个集合并返回所有元素的列表
    • SMOVE:将成员从一个集合移动到另一个集合

    有序集合

    带有排序功能的集合,Redis 按照元素分数值排序

    ZADD keyword 0 "han" 0 "jack ma" 0 "Andrew wu"ZINCRBY keyword 1 "han"ZINCRBY keyword 5 "jack ma"ZINCRBY keyword 2 "Andrew wu"ZREVRANGE key 0 -1
    • ZCARD:获取有序集合长度
    • ZCOUNT:查询某个分数值区间内的元素数量,如 ZCOUNT keyword 5 10
    • ZSCORE:查询元素的分数值
    • ZRANGE:获取有序集合的内容(升序),如 ZRANGE keyword 0 -1
    • ZREVRANGE:获取有序集合的内容(降序),如 ZREVRANGE keyword 0 -1
    • ZRANGEBYSCORE:获取分数值区间内的集合内容(升序),如
    zrangebyscore keyword 5 10  # 5-10
    zrangebyscore keyword 5 (10  # 大于等于5, 小于 10
    zrangebyscore keyword 100000 +inf
    • ZREVRANGEBYSCORE:获取分数值区间内的集合内容(降序) zrevrangebyscore keyword 10 5
    • ZRANK:获取元素的升序排名(从0开始)zrank keyword "xx"
    • ZREVRANK:获取元素的降序排名(从0开始)
    • ZREM:删除有序集合中的元素 ZREM keyword "x" "y"
    • ZREMRANGEBYRANK:删除排名区间内的元素 zremrangebyrank keyword 0 2
    • ZREMRANGEBYSCORE:删除分数值区间内的元素 zremrangebyscore keyword 0 -3

    zremrangebyscore keyword inf (5000)

    推荐学习:Redis视频教程

    以上是Redis基本資料類型與操作(總結分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述
    本文轉載於:掘金。如有侵權,請聯絡admin@php.cn刪除
    Redis是SQL還是NOSQL數據庫?答案解釋了Redis是SQL還是NOSQL數據庫?答案解釋了Apr 18, 2025 am 12:11 AM

    RedisisclassifiedasaNoSQLdatabasebecauseitusesakey-valuedatamodelinsteadofthetraditionalrelationaldatabasemodel.Itoffersspeedandflexibility,makingitidealforreal-timeapplicationsandcaching,butitmaynotbesuitableforscenariosrequiringstrictdataintegrityo

    REDIS:提高應用程序性能和可擴展性REDIS:提高應用程序性能和可擴展性Apr 17, 2025 am 12:16 AM

    Redis通過緩存數據、實現分佈式鎖和數據持久化來提升應用性能和可擴展性。 1)緩存數據:使用Redis緩存頻繁訪問的數據,提高數據訪問速度。 2)分佈式鎖:利用Redis實現分佈式鎖,確保在分佈式環境中操作的安全性。 3)數據持久化:通過RDB和AOF機制保證數據安全性,防止數據丟失。

    REDIS:探索其數據模型和結構REDIS:探索其數據模型和結構Apr 16, 2025 am 12:09 AM

    Redis的數據模型和結構包括五種主要類型:1.字符串(String):用於存儲文本或二進制數據,支持原子操作。 2.列表(List):有序元素集合,適合隊列和堆棧。 3.集合(Set):無序唯一元素集合,支持集合運算。 4.有序集合(SortedSet):帶分數的唯一元素集合,適用於排行榜。 5.哈希表(Hash):鍵值對集合,適合存儲對象。

    REDIS:對其數據庫方法進行分類REDIS:對其數據庫方法進行分類Apr 15, 2025 am 12:06 AM

    Redis的數據庫方法包括內存數據庫和鍵值存儲。 1)Redis將數據存儲在內存中,讀寫速度快。 2)它使用鍵值對存儲數據,支持複雜數據結構,如列表、集合、哈希表和有序集合,適用於緩存和NoSQL數據庫。

    為什麼要使用redis?利益和優勢為什麼要使用redis?利益和優勢Apr 14, 2025 am 12:07 AM

    Redis是一個強大的數據庫解決方案,因為它提供了極速性能、豐富的數據結構、高可用性和擴展性、持久化能力以及廣泛的生態系統支持。 1)極速性能:Redis的數據存儲在內存中,讀寫速度極快,適合高並發和低延遲應用。 2)豐富的數據結構:支持多種數據類型,如列表、集合等,適用於多種場景。 3)高可用性和擴展性:支持主從復制和集群模式,實現高可用性和水平擴展。 4)持久化和數據安全:通過RDB和AOF兩種方式實現數據持久化,確保數據的完整性和可靠性。 5)廣泛的生態系統和社區支持:擁有龐大的生態系統和活躍社區,

    了解NOSQL:Redis的關鍵特徵了解NOSQL:Redis的關鍵特徵Apr 13, 2025 am 12:17 AM

    Redis的關鍵特性包括速度、靈活性和豐富的數據結構支持。 1)速度:Redis作為內存數據庫,讀寫操作幾乎瞬時,適用於緩存和會話管理。 2)靈活性:支持多種數據結構,如字符串、列表、集合等,適用於復雜數據處理。 3)數據結構支持:提供字符串、列表、集合、哈希表等,適合不同業務需求。

    REDIS:確定其主要功能REDIS:確定其主要功能Apr 12, 2025 am 12:01 AM

    Redis的核心功能是高性能的內存數據存儲和處理系統。 1)高速數據訪問:Redis將數據存儲在內存中,提供微秒級別的讀寫速度。 2)豐富的數據結構:支持字符串、列表、集合等,適應多種應用場景。 3)持久化:通過RDB和AOF方式將數據持久化到磁盤。 4)發布訂閱:可用於消息隊列或實時通信系統。

    REDIS:流行數據結構指南REDIS:流行數據結構指南Apr 11, 2025 am 12:04 AM

    Redis支持多種數據結構,具體包括:1.字符串(String),適合存儲單一值數據;2.列表(List),適用於隊列和棧;3.集合(Set),用於存儲不重複數據;4.有序集合(SortedSet),適用於排行榜和優先級隊列;5.哈希表(Hash),適合存儲對像或結構化數據。

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    1 個月前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳圖形設置
    1 個月前By尊渡假赌尊渡假赌尊渡假赌
    威爾R.E.P.O.有交叉遊戲嗎?
    1 個月前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    MinGW - Minimalist GNU for Windows

    MinGW - Minimalist GNU for Windows

    這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

    SublimeText3 英文版

    SublimeText3 英文版

    推薦:為Win版本,支援程式碼提示!

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    將Eclipse與SAP NetWeaver應用伺服器整合。

    PhpStorm Mac 版本

    PhpStorm Mac 版本

    最新(2018.2.1 )專業的PHP整合開發工具