redis 介紹和常用命令

来源:http://www.cnblogs.com/weihanli/archive/2017/05/19/rediscommands.html
-Advertisement-
Play Games

redis 介紹和常用命令 redis簡介 Redis 是一款開源的,基於 BSD 許可的,高級鍵值 (key-value) 緩存 (cache) 和存儲 (store) 系統。由於 Redis 的鍵包括 string,hash,list,set,sorted set,bitmap 和 hyperl ...


redis 介紹和常用命令

redis簡介

Redis 是一款開源的,基於 BSD 許可的,高級鍵值 (key-value) 緩存 (cache) 和存儲 (store) 系統。由於 Redis 的鍵包括 string,hash,list,set,sorted set,bitmap 和 hyperloglog,所以常常被稱為數據結構伺服器。你可以在這些類型上面運行原子操作,例如,追加字元串,增加哈希中的值,加入一個元素到列表,計算集合的交集、並集和差集,或者是從有序集合中獲取最高排名的元素。

為了滿足高性能,Redis 採用記憶體 (in-memory) 數據集 (dataset)。根據你的使用場景,你可以通過每隔一段時間轉儲數據集到磁碟,或者追加每條命令到日誌來持久化。持久化也可以被禁用,如果你只是需要一個功能豐富,網路化的記憶體緩存。

Redis 還支持主從非同步複製,非常快的非阻塞初次同步、網路斷開時自動重連局部重同步。 其他特性包括:

  • 事務
  • 訂閱/發佈
  • Lua 腳本
  • 帶 TTL 的鍵
  • LRU 回收健
  • 自動故障轉移 (failover)

你可以通過多種語言來使用 Redis。

Redis 是由 ANSI C 語言編寫的,在無需額外依賴下,運行於大多數 POSIX 系統,如 Linux、*BSD、OS X。Redis 是在 Linux 和 OS X 兩款操作系統下開發和充分測試的,我們推薦 Linux 為部署環境。Redis 也可以運行在 Solaris 派生系統上,如 SmartOS,但是支持有待加強。沒有官方支持的 Windows 構建版本,但是微軟開發和維護了一個 64 位 Windows 的版本。

更多介紹:

wikipedia:

Redis is an in-memory database open-source software project sponsored by Redis Labs. It is networked, in-memory, and stores keys with optional durability.

redis.io

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

redis 配置

linux 配置

linux 下載安裝參考官網 https://redis.io/download

windows 配置

redis 官網沒有提供Windows的支持,不過微軟的開源團隊做了一個Windows版本的,項目地址:https://github.com/MSOpenTech/redis,頓時想感慨一番,微軟大法好!!!

從這裡 https://github.com/MSOpenTech/redis/releases 下載 redis Windows版本,這裡想再感慨一下,我上次配置的時候是用的 2.4.5 版本,那個版本的配置還需要自己手動執行命令安裝服務,手動配置環境變數,現在一切都自動化了,安裝好之後服務自動安裝並且安裝的時候,可以選擇將安裝目錄添加到環境變數,真的是方便了好多。

下載最新的 release 版安裝包之後,解壓安裝即可,建議添加到環境變數。

redis 常用命令

連接遠程 redis 伺服器

1 redis-cli -h hostname/ip [-p port] [-a password]
2 
3 redis-cli - 172.16.20.233 -p 6379

 

參數說明

  • -h 功能變數名稱或IP
  • -p 埠號(預設埠號是6379)
  • -a 訪問密碼(預設是不需要密碼訪問的,如果要設置密碼可以修改 redis.conf 的requirepass節點)

基本操作

註:命令名不區分大小寫,key 和 value 是區分大小寫的

 1 # 選擇資料庫,預設使用index為0的資料庫
 2 SELECT index
 3 
 4 # 獲取緩存中的 key
 5 # 查看緩存中所有 key
 6 KEYS *
 7 
 8 # 模糊匹配查詢緩存中的 key
 9 KEYS aa*
10 KEYS *aaa
11 KEYS aa*bb
12 
13 # 判斷key是不是存在
14 EXISTS key [key...]
15 
16 # 返回值說明
17 # - 1:存在
18 # - 0:不存在
19 
20 # 根據key獲取value
21 GET key
22 
23 # 返回值說明
24 # - (nil):key不存在
25 
26 # 根據key獲取value的substring
27 GETRANGE key start end
28 
29 # 更新key的value返回舊的value
30 GETSET key value
31 
32 # 同時獲取多個key的值
33 MGET key [key ...]
34 
35 # 設置/更新緩存的值
36 SET key value [EX seconds] [PX milliseconds] [NX|XX]
37 
38 # 參數說明
39 # - EX :設置過期時間,單位是秒
40 # - PX :設置過期時間,單位毫秒
41 # - NX : 只有key不存在時才設置key的value
42 # - XX :只有key存在時才設置key的value
43 
44 SET key value PX milliseconds
45 SET key value EX seconds NX    
46 SET key value XX
47 
48 # 只有key不存在時才設置,和 `SET key value NX`效果一樣
49 SETNX key value
50 
51 # 重寫key對應value的一部分
52 SETRANGE key offset value
53 
54 # 獲取key對應value的長度
55 STRLEN key
56 
57 # 根據key刪除緩存中的值
58 DEL key [key...]
59 
60 # integer 類型的值減一
61 DECR key
62 
63 # integer 類型的值減小 decrement
64 DECRBY key decrement 
65 
66 # integer類型的值加一
67 INCR key
68 
69 # integer 類型的值減小 increment
70 INCRBY key increment 

 

更多 key 操作

 1 # 以秒為單位設置key過期時間
 2 EXPIRE key seconds
 3 
 4 # 以秒為單位設置key過期時間的UNIX時間戳
 5 EXPIREAT key timestamp
 6 
 7 # 以毫秒為單位設置key過期時間
 8 PEXPIRE key milliseconds
 9 
10 # 以毫秒為單位設置key過期時間的UNIX時間戳
11 PEXPIREAT key milliseconds-timestamp
12 
13 # 移動key到另外一個database
14 MOVE key db
15 
16 # 移除key的過期時間,設置為不過期
17 PERSIST key
18 
19 # 獲取key的剩餘生存時間單位為秒,還有多長時間過期單位為秒
20 TTL key
21 
22 #返回值說明
23 # -2:key不存在
24 # -1:key存在但是沒有設置過期時間
25 
26 # 獲取key的剩餘生存時間單位為毫秒,還有多長時間過期單位為毫秒
27 PTTL key
28 
29 # 獲取一個隨機生成的 key
30 RANDOMKEY
31 
32 # 重命名一個 key
33 RENAME key newkey
34 
35 # 獲取key存儲的value的數據類型
36 TYPE key
37 
38 # list 或 set 排序
39 SORT key 

 

更多命令

更多參考 https://redis.io/commands

遠程 Redis 調試

  1. 連接遠程 redis 伺服器
# 匿名訪問
redis-cli -h 172.16.20.233 -p 6479
# 密碼訪問
redis-cli -h 172.16.20.233 -p 6479 -a p@ssword

 

  1. 利用keys模糊查詢,查詢 key 的完整名稱
# 以 aaa 結尾的 key
keys *aaa
# 以 aaa 開頭的 key
keys aaa*
# 完全模糊匹配包含 aaa 的key
keys *aaa*

 

  1. 找到自己要的key,複製完整key名稱,如果返回 (empty list or set),則說明不存在這樣的key,檢查你的模式是否正確,如果正確說明並沒有你想要的key

  2. 根據key查詢value

get key

 

  1. 手動更新key的value
set key value [EX seconds]

 

  1. 刪除key
del key

 

More

redis客戶端

redis有豐富的客戶端支持,如果想要獲取一個完整的列表,可以訪問這裡 https://redis.io/clients

redis 命令

redis 命令集合 https://redis.io/commands

reids 文檔

redis 官方文檔 https://redis.io/documentation

redis 下載

redis 下載

End

想不起來寫點什麼好了,想起來再寫吧,有什麼問題或疑問歡迎可以隨時和我聯繫 [email protected]


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Ubuntu中安裝Samba並添加賬戶: 1.更新源列表:sudo apt-get update 2.安裝Samba:sudo apt-get install samba samba-common 3.新建共用目錄並設置許可權 3.1 在home目錄下創建共用目錄share 在終端中輸入sudo mk ...
  • 1、 2、 3、 4、 ...
  • SHELL中的變數 運行SHELL腳本中的單個命令自然有用,但這有其自身的限制。通常你會需要在SHELL命令使用其他數據來處理信息。這可以通過變數來實現。變數允許你臨時性地將信息存儲在SHELL腳本中,以便和腳本中的其他命令一起使用。 1 環境變數 SHELL維護著一組環境變數,用了記錄特點的系統信 ...
  • 文件的壓縮與解壓 常用命令和參數 1 gzip -c 將壓縮或解壓的結果輸出至標準輸出 -d 解壓縮,相當於guzip -# (1-9)指定壓縮比,預設為6。 zcat 不解壓縮的情況下查看文件。 壓縮:gzip FileName 解壓:gzip –d FileName.gz 2 bzip2 -d ...
  • 實在受不了在Windows下編程,所以自己就安裝了一個Ubutun,公司用的翻牆軟體shadowsocks在Windows上用起來很簡單很爽,但是在Ubutun上的安裝和配置就沒那麼簡單了,寫下這篇文章,希望需要的朋友能簡單快速的搞定shadowsocks的安裝和配置 1.安裝 在命令行執行上面的三 ...
  • 8.1 實例構造器和類(引用類型) 構造引用類型的對象時,在調用類型的實例構造器之前,為對象分配的記憶體總是先被歸零 。沒有被構造器顯式重寫的所有欄位都保證獲得 0 或 null 值。 構造器不能被繼承。不能使用以下修飾符: virtual,new,override,sealed和abstract. ...
  • IDE:VisualStudio 2017 Language:VB.NET/C# 圖形API:Win2D 游戲引擎:ExperDot.EDGameEngine 本文將向你介紹一種粒子系統(Partical System)模擬植物的簡單方法。 第一節 移動 粒子將按照某種規則移動,且始終保留移動軌跡。 ...
  • 本文內容是本人參考多本經典C 書籍和一些前輩的博文做的總結 儘管.NET運行庫負責處理大部分記憶體管理工作,但C 程式員仍然必須理解記憶體管理的工作原理,瞭解如何高效地處理非托管的資源,才能在非常註重性能的系統中高效地處理記憶體。 C 編程的一個優點就是程式員不必擔心具體的記憶體管理,垃圾回收器會自動處理所 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...