Redis 使用及命令操作

文章目錄

      • 一、基本命令
      • 二、redis 設置鍵的生存時間或過期時間
      • 三、SortSet 排序集合類型操作
      • 四、查看中文
      • 五、密碼設置和查看密碼的方法
      • 六、關于 Redis 的 database 相關基礎
      • 七、查看內存占用

一、基本命令

# 查看版本
redis-cli --version
結果:redis-cli 8.0.0redis-server --version
結果:Redis server v=8.0.0 sha=00000000:2 malloc=jemalloc-5.3.0 bits=64 build=5c6bfe0bdcb0538b#查看所有key
keys *  或  keys "*"#查看匹配前綴的keys
keys "miao*"#清空redis
flushdb#查看key的類型
type key#查看數據庫中key的數量
dbsize#查看服務器信息
info#查看日志
slowlog get
slowlog get 10# 設置key的值,若存在則覆蓋
set key value# 重命名
RENAME oldkey newkey# 向key的字符串追加拼接
append key value# 獲取key對應的值 MGET key1 key2 ... keyN:獲取這些key對應的值
get key# 查看是否存在該元素
EXISTS key# 刪除元素
del key

參考:redis學習教程之一基本命令

二、redis 設置鍵的生存時間或過期時間

# 設置該元素多少秒后失效
EXPIRE key seconds# 設置該元素多少毫秒后失效
PEXPIRE key milliseconds# 查看還可以存活多少秒,-2表示key不存在,-1表示永久存儲
TTL key# 取消過期時間
persist key# unix時間戳,1970.1.1之后,這個絕對時間,將在這個時間刪除key。expireat pages:about 1356933600:在2012年12月31日上午12點刪除掉關鍵字
expireat key 時間戳

參考:redis設置鍵的生存時間或過期時間

??Java 實現:

import redis.clients.jedis.Jedis;public class RedisExpireExample {public static void main(String[] args) {// 連接到Redis服務器Jedis jedis = new Jedis("localhost", 6379);try {// 設置鍵 "key" 的值為 "value"jedis.set("key", "value");// 設置鍵 "key" 的過期時間為60秒jedis.expire("key", 60);// 打印鍵 "key" 的剩余生存時間System.out.println("剩余生存時間:" + jedis.ttl("key"));} finally {// 關閉連接jedis.close();}}
}

三、SortSet 排序集合類型操作

??創建一個 sort set 排序集合:

127.0.0.1:6379> zadd b3ebc2e6 0.1 id10
(integer) 1
127.0.0.1:6379> zadd b3ebc2e6 0.5 id11
(integer) 1
127.0.0.1:6379> zadd b3ebc2e6 2.1 id12
(integer) 1
127.0.0.1:6379> zadd b3ebc2e6 0.7 id13
(integer) 1

??我們按照權值從大到小逆序排序顯示一下我們的數據:

127.0.0.1:6379> zrevrange b3ebc2e6 0 100
1) "id12"
2) "id13"
3) "id11"
4) "id10"

??我們要刪除回復量最低的數據(從小到大的排序后,刪除區間為0到0的元素,也就是0本身):

127.0.0.1:6379> zremrangebyrank b3ebc2e6 0 0
(integer) 1
127.0.0.1:6379> zrevrange b3ebc2e6 0 100
1) "id12"
2) "id13"
3) "id11"

??想查看某一個權值數據的排名(zrank 從小到大,zrevrank 從大到小),使用 zrank 指令:

127.0.0.1:6379> zrank b3ebc2e6 id11
(integer) 0
127.0.0.1:6379> zrank b3ebc2e6 id13
(integer) 1
127.0.0.1:6379> zrank b3ebc2e6 id12
(integer) 2
127.0.0.1:6379> zrevrank b3ebc2e6 id11
(integer) 2

??zcard 指令可以返回 SortSet 集合中的元素個數:

127.0.0.1:6379> zcard b3ebc2e6
(integer) 3

??zincrby 指令增加某個權值下的數值,我們給 id11 的數據加 200:

127.0.0.1:6379> zincrby b3ebc2e6 200 id11
"200.5"
127.0.0.1:6379> zrevrange b3ebc2e6 0 100
1) "id11"
2) "id12"
3) "id13"

??最后,想查看某個權值對應的數據值,使用 zscore 就可以了:

127.0.0.1:6379> zscore b3ebc2e6 id12
"2.1000000000000001"

參考:
【Redis緩存機制】7.SortSet排序集合類型操作
Redis sort 排序命令詳解

四、查看中文

??Redis 在使用命令行操作時,如果查看內容中包含中文,會顯示16進制的字符串 \xe4\xb8\xad\xe5\x9b\xbd

127.0.0.1:6379> set k1 '中國'
OK
127.0.0.1:6379> get k1
"\xe4\xb8\xad\xe5\x9b\xbd"# 解決:
redis-cli 后面加上–-raw
$ redis-cli --raw
127.0.0.1:6379> get k1
中國

五、密碼設置和查看密碼的方法

??redis 沒有實現訪問控制這個功能,但是它提供了一個輕量級的認證方式,可以編輯 redis.conf 配置來啟用認證。

??1. 初始化 Redis 密碼:

??在配置文件中有個參數:requirepass 這個就是配置 redis 訪問密碼的參數; 比如 requirepass test123;(Ps:需重啟 Redis 才能生效) redis 的查詢速度是非常快的,外部用戶一秒內可以嘗試多大150K個密碼;所以密碼要盡量長(對于DBA 沒有必要必須記住密碼);

??2. 不重啟Redis設置密碼:

# 設置密碼
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
# 查詢密碼
127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
# 密碼驗證
127.0.0.1:6379> auth 123456
OK
# 再次查詢
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
# PS:如果配置文件中沒添加密碼 那么redis重啟后,密碼失效;

??3. 登陸有密碼的 Redis

# 在登錄的時候的時候輸入密碼
redis-cli -h 127.0.0.1 -p 6379 -a 123456# 先登陸后驗證
redis-cli -p 6379
redis 127.0.0.1:6379> auth 123456
OK

??AUTH 命令跟其他 redis 命令一樣,是沒有加密的;阻止不了攻擊者在網絡上竊取你的密碼;

??認證層的目標是提供多一層的保護。如果防火墻或者用來保護 redis 的系統防御外部攻擊失敗的話,外部用戶如果沒有通過密碼認證還是無法訪問 redis 的。

參考:Redis 密碼設置和查看密碼的方法

六、關于 Redis 的 database 相關基礎

??Redis 默認提供了16個數據庫(database),每個數據庫有一個 id,從0到15,他們沒有名字,只有 id。

??可以在 Redis 配置文件中修改數據庫個數,使用以下配置:

# 代表啟動時提供32個數據庫
databases 32

??客戶端登錄 Redis 時默認登錄的是 id 為 0 的數據庫。不同的數據庫中數據隔離保存。使用select id命令可以切換當前數據庫,比如:

在這里插入圖片描述
??切換數據庫后 Redis 命令行會有數據庫 id 的標識,另外,0號數據庫不顯示標識。FLUSHALL 命令會清空所有數據庫中的數據庫,不只是當前數據庫。

??spring-boot 可以在配置文件中設置默認登錄的數據庫(這樣默認登錄的數據庫就是 5):

spring.redis.database=5

參考:關于Redis的database相關基礎

七、查看內存占用

??要查看 Redis 的內存占用情況,可以通過以下幾種方式進行操作:

??INFO memory : 該命令會返回一個包含內存相關信息的文本,其中包括 used_memory 字段表示已使用內存的大小,used_memory_human 字段表示已使用內存的大小(以人類可讀的格式顯示)。

??MEMORY STATS:該命令會返回一個包含詳細內存統計信息的文本,其中包括 used_memory 字段表示已使用內存的大小,used_memory_human 字段表示已使用內存的大小(以人類可讀的格式顯示)。

127.0.0.1:6379> INFO memory
# Memory
used_memory:4952568
used_memory_human:4.72M
used_memory_rss:7786496
used_memory_rss_human:7.43M
used_memory_peak:5754256
used_memory_peak_human:5.49M
used_memory_peak_perc:86.07%
used_memory_overhead:1616328
used_memory_startup:865968
used_memory_dataset:3336240
used_memory_dataset_perc:81.64%
allocator_allocated:5176184
allocator_active:6045696
allocator_resident:9076736
total_system_memory:33566556160
total_system_memory_human:31.26G
used_memory_lua:31744
used_memory_vm_eval:31744
used_memory_lua_human:31.00K
used_memory_scripts_eval:0
number_of_cached_scripts:0
number_of_functions:0
number_of_libraries:0
used_memory_vm_functions:32768
used_memory_vm_total:64512
used_memory_vm_total_human:63.00K
used_memory_functions:184
used_memory_scripts:184
used_memory_scripts_human:184B
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:1.17
allocator_frag_bytes:869512
allocator_rss_ratio:1.50
allocator_rss_bytes:3031040
rss_overhead_ratio:0.86
rss_overhead_bytes:-1290240
mem_fragmentation_ratio:1.57
mem_fragmentation_bytes:2834128
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_total_replication_buffers:0
mem_clients_slaves:0
mem_clients_normal:43608
mem_cluster_links:0
mem_aof_buffer:0
mem_allocator:jemalloc-5.3.0
active_defrag_running:0
lazyfree_pending_objects:0
lazyfreed_objects:0
127.0.0.1:6379> MEMORY STATS1) "peak.allocated"2) (integer) 57542563) "total.allocated"4) (integer) 50066885) "startup.allocated"6) (integer) 8659687) "replication.backlog"8) (integer) 09) "clients.slaves"
10) (integer) 0
11) "clients.normal"
12) (integer) 95216
13) "cluster.links"
14) (integer) 0
15) "aof.buffer"
16) (integer) 0
17) "lua.caches"
18) (integer) 0
19) "functions.caches"
20) (integer) 184
21) "db.2"
22) 1) "overhead.hashtable.main"2) (integer) 4054323) "overhead.hashtable.expires"4) (integer) 2649445) "overhead.hashtable.slot-to-keys"6) (integer) 0
23) "db.10"
24) 1) "overhead.hashtable.main"2) (integer) 361923) "overhead.hashtable.expires"4) (integer) 05) "overhead.hashtable.slot-to-keys"6) (integer) 0
25) "overhead.total"
26) (integer) 1667936
27) "keys.count"
28) (integer) 7559
29) "keys.bytes-per-key"
30) (integer) 547
31) "dataset.bytes"
32) (integer) 3338752
33) "dataset.percentage"
34) "80.63216400146484"
35) "peak.percentage"
36) "87.00843048095703"
37) "allocator.allocated"
38) (integer) 5235728
39) "allocator.active"
40) (integer) 6098944
41) "allocator.resident"
42) (integer) 9129984
43) "allocator-fragmentation.ratio"
44) "1.164870262145996"
45) "allocator-fragmentation.bytes"
46) (integer) 863216
47) "allocator-rss.ratio"
48) "1.4969778060913086"
49) "allocator-rss.bytes"
50) (integer) 3031040
51) "rss-overhead.ratio"
52) "0.8716913461685181"
53) "rss-overhead.bytes"
54) (integer) -1171456
55) "fragmentation"
56) "1.5896047353744507"
57) "fragmentation.bytes"
58) (integer) 2951920

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81898.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81898.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81898.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java大師成長計劃之第13天:Java中的響應式編程

📢 友情提示: 本文由銀河易創AI(https://ai.eaigx.com)平臺gpt-4o-mini模型輔助創作完成,旨在提供靈感參考與技術分享,文中關鍵數據、代碼與結論建議通過官方渠道驗證。 隨著現代應用程序的復雜性增加&…

華為私有協議Hybrid

實驗top圖 理論環節 1. 基本概念 Hybrid接口: 支持同時處理多個VLAN流量,且能針對不同VLAN配置是否攜帶標簽(Tagged/Untagged)。 核心特性: 靈活控制數據幀的標簽處理方式,適用于復雜網絡場景。 2. 工作…

K8s 常用命令、對象名稱縮寫匯總

K8s 常用命令、對象名稱縮寫匯總 前言 在之前的文章中已經陸續介紹過 Kubernetes 的部分命令,本文將專題介紹 Kubernetes 的常用命令,處理日常工作基本夠用了。 集群相關 1、查看集群信息 kubectl cluster-info # 輸出信息Kubernetes master is run…

【HDLBits刷題】Verilog Language——1.Basics

目錄 一、題目與題解 1.Simple wire(簡單導線) 2.Four wires(4線) 3.Inverter(逆變器(非門)) 4.AND gate (與門) 5. NOR gate (或非門&am…

C語言|遞歸求n!

C語言| 函數的遞歸調用 【遞歸求n!】 0!1; 1!1 n! n*(n-1)*(n-2)*(n-3)*...*3*2*1; 【分析過程】 定義一個求n&#xff01;的函數&#xff0c;主函數直接調用 [ Factorial()函數 ] 1 用if語句去實現&#xff0c;把求n!的情況列舉出來 2 if條件有3個&#xff0c;n<0; n0||n…

Android第四次面試總結之Java基礎篇(補充)

一、設計原則高頻面試題&#xff08;附大廠真題解析&#xff09; 1. 單一職責原則&#xff08;SRP&#xff09;在 Android 開發中的應用&#xff08;字節跳動真題&#xff09; 真題&#xff1a;“你在項目中如何體現單一職責原則&#xff1f;舉例說明。”考點&#xff1a;結合…

OpenHarmony GPIO應用開發-LED

學習于&#xff1a; https://docs.openharmony.cn/pages/v5.0/zh-cn/device-dev/driver/driver-platform-gpio-develop.md https://docs.openharmony.cn/pages/v5.0/zh-cn/device-dev/driver/driver-platform-gpio-des.md 通過OpenHarmony官方文檔指導可獲知&#xff1a;芯片廠…

XILINX原語之——xpm_fifo_async(異步FIFO靈活設置位寬、深度)

目錄 一、"fwft"模式&#xff08;First-Word-Fall-Through read mode&#xff09; 1、寫FIFO 2、讀FIFO 二、"std"模式&#xff08;standard read mode&#xff09; 1、寫FIFO 2、讀FIFO 調用方式和xpm_fifo_sync基本一致&#xff1a; XILINX原語之…

系統學習算法:動態規劃(斐波那契+路徑問題)

題目一&#xff1a; 思路&#xff1a; 作為動態規劃的第一道題&#xff0c;這個題很有代表性且很簡單&#xff0c;適合入門 先理解題意&#xff0c;很簡單&#xff0c;就是斐波那契數列的加強版&#xff0c;從前兩個數變為前三個數 算法原理&#xff1a; 這五步可以說是所有…

《讓內容“活”起來:Flutter社交應用瀑布流布局的破界實踐》

用戶動態的展示方式如同舞臺的布景&#xff0c;直接影響著觀眾——用戶的體驗。而瀑布流布局&#xff0c;以其獨特的美感和高效的信息展示能力&#xff0c;成為眾多社交應用的心頭好。當我們滑動著Instagram、Pinterest&#xff0c;或是國內熱門的小紅書&#xff0c;那種內容如…

微機控制技術復習【一】

填空題&#xff1a; 簡答題&#xff1a; 1、什么是計算機控制系統?其典型形式有哪些? 2、給出 DDC &#xff08;直接數字控制&#xff09;控制系統結構框圖&#xff0c;并說明各組成部分的作用&#xff1f; 3、采樣周期選擇的理論依據是什么?工程應用中應如何選擇?選擇采樣…

前端學習基礎—VScode環境配置及html基礎知識

作為初學者&#xff0c;一個好的開發環境能極大地提高理解與學習的效率&#xff0c;本文分享我的VScode環境配置方法&#xff0c;涵蓋插件、主題、快捷鍵等&#xff0c;希望能助你快速搭建舒適邊界的前端學習環境。 一、VSCode環境配置 首先找到vscode插件商店&#xff0c;在這…

【一】 基本概念與應用領域【830數字圖像處理】

考綱 文章目錄 1 概念2005甄題【名詞解釋】2008、2012甄題【名詞解釋】可考題【簡答題】可考題【簡答題】 2 應用領域【了解】2.1 伽馬射線成像【核醫學影像】☆2.2 X射線成像2.3 紫外波段成像2.4 可見光和紅外波段成像2.5 微波波段成像2.6 無線電波段成像2.7 電子顯微鏡成像2…

QuecPython錯誤碼匯總

QuecPython中定義的各種錯誤代碼常量 錯誤碼常量錯誤碼釋義QUEC_PY_FAIL-1Generic failure codesQUEC_PY_OK0Quec_py value indicating success (no error)QUEC_PY_EPERM1Operation not permittedQUEC_PY_ENOENT2No such file or directoryQUEC_PY_ESRCH3No such processQUEC_…

C++學習-入門到精通-【4】函數與遞歸入門

C學習-入門到精通-【4】函數與遞歸入門 函數與遞歸入門 C學習-入門到精通-【4】函數與遞歸入門一、 數學庫函數sqrt()ceil()cos()exp()fabs()floor()fmod()log()log10()pow()sin()tan()總結 二、具有多個形參的函數定義三、函數原型、函數簽名和實參的強制類型轉換函數原型函數…

天線測試報告解讀學習

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、無源測試和有源測試二、無源測試報告1.駐波2.回損3.史密斯圓圖4.效率5.增益6.天線方向圖7.天線隔離度8.無源測試總結 三、有源測試報告1.TRP與TIS2.測試指標…

GEC6818蜂鳴器驅動開發

相關知識&#xff1a;Linux設備驅動開發 insmod 編譯好的.ko文件后再運行beep_app.c編譯完成的可執行文件即可使板子蜂鳴。 beep_drv.c: #include <linux/module.h> //包含了加載模塊時需要使用的大量符號和函數聲明 #include <linux/kernel.h> //包含了printk內…

電腦定時管家!Wise Auto Shutdown 深度測評:多任務執行 + 靈活定時

各位電腦小達人&#xff0c;今天給大家介紹一款超厲害的Windows系統定時任務管理工具——Wise Auto Shutdown&#xff01;這玩意兒就像電腦的貼心小管家&#xff0c;能自動執行關機、重啟這些操作&#xff0c;時間設定靈活得很&#xff0c;還有提醒機制呢。下面我給大家好好嘮嘮…

vscode 配置qt

工具&#xff1a;vscode、qttools、qtconfigure Search Mode改成基于cmake的。 # 在項目中指定Qt的路徑 set(Qt5_DIR "/home/jp/qt-everywhere-src-5.12.9/arm-qt/lib/cmake/Qt5") # 用于指定 Qt5 的安裝路徑 find_package(Qt5 REQUIRED COMPONENTS Widgets)這樣就…

基于Boost庫、Jsoncpp、cppjieba、cpp-httplib等構建Boost搜索引擎

??個人主頁&#xff1a;小羊 ??所屬專欄&#xff1a;項目 很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~ 目錄 項目背景技術棧和項目環境正排索引和倒排索引數據去標簽與清洗下載數據源去標簽 建立索引構建正排索引構建倒排索引 建立搜索引擎h…