redis 介紹和常用命令


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

想不起來寫點什么好了,想起來再寫吧,有什么問題或疑問歡迎可以隨時和我聯系 weihanli@outlook.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM