1. 程式人生 > >Redis 常用操作命令,非常詳細

Redis 常用操作命令,非常詳細

下面總結並演示了 Redis 的 常用管理命令、key 操作、字串、集合、列表、雜湊型別的操作命令。

你需要掌握的 Redis 知識

更多請在後臺回覆關鍵字:Redis。

常用管理命令

1、啟動Redis

> redis-server [--port 6379]

如果命令引數過多,建議通過配置檔案來啟動Redis。

> redis-server [xx/xx/redis.conf]

6379是Redis預設埠號。

2、連線Redis

> ./redis-cli [-h 127.0.0.1 -p 6379]

3、停止Redis

> redis-cli shutdown

> kill redis-pid

以上兩條停止Redis命令效果一樣。

4、傳送命令

給Redis傳送命令有兩種方式:

1、redis-cli帶引數執行,如:

> redis-cli shutdown
not connected> 

這樣預設是傳送到本地的6379埠。

2、redis-cli不帶引數執行,如:

> ./redis-cli

127.0.0.1:6379> shutdown
not connected> 

5、測試連通性

127.0.0.1:6379> ping
PONG

key操作命令

獲取所有鍵

語法:keys pattern

127.0.0.1:6379> keys *
1) "javastack"
  • *表示萬用字元,表示任意字元,會遍歷所有鍵顯示所有的鍵列表,時間複雜度O(n),在生產環境不建議使用。

獲取鍵總數

語法:dbsize

127.0.0.1:6379> dbsize
(integer) 6

獲取鍵總數時不會遍歷所有的鍵,直接獲取內部變數,時間複雜度O(1)。

查詢鍵是否存在

語法:exists key [key …]

127.0.0.1:6379> exists javastack java
(integer) 2

查詢查詢多個,返回存在的個數。

刪除鍵

語法:del key [key …]

127.0.0.1:6379> del java javastack
(integer) 1

可以刪除多個,返回刪除成功的個數。

查詢鍵型別

語法: type key

127.0.0.1:6379> type javastack
string

移動鍵

語法:move key db

如把javastack移到2號資料庫。

127.0.0.1:6379> move javastack 2
(integer) 1
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
1) "javastack"

查詢key的生命週期(秒)

秒語法:ttl key

毫秒語法:pttl key

127.0.0.1:6379[2]> ttl javastack
(integer) -1

-1:永遠不過期。

設定過期時間

秒語法:expire key seconds

毫秒語法:pexpire key milliseconds

127.0.0.1:6379[2]> expire javastack 60
(integer) 1
127.0.0.1:6379[2]> ttl javastack
(integer) 55

設定永不過期

語法:persist key

127.0.0.1:6379[2]> persist javastack
(integer) 1

更改鍵名稱

語法:rename key newkey

127.0.0.1:6379[2]> rename javastack javastack123
OK

字串操作命令

字串是Redis中最基本的資料型別,單個數據能儲存的最大空間是512M。

存放鍵值

語法:set key value [EX seconds] [PX milliseconds] [NX|XX]

nx:如果key不存在則建立,xx:如果key存在則修改其值,也可以直接使用setnx/setex命令。

127.0.0.1:6379> set javastack 666
OK

獲取鍵值

語法:get key

127.0.0.1:6379[2]> get javastack
"666"

值遞增/遞減

如果字串中的值是數字型別的,可以使用incr命令每次遞增,不是數字型別則報錯。

語法:incr key

127.0.0.1:6379[2]> incr javastack
(integer) 667

一次想遞增N用incrby命令,如果是浮點型資料可以用incrbyfloat命令遞增。

同樣,遞減使用decr、decrby命令。

批量存放鍵值

語法:mset key value [key value …]

127.0.0.1:6379[2]> mset java1 1 java2 2 java3 3
OK

獲取獲取鍵值

語法:mget key [key …]

127.0.0.1:6379[2]> mget java1 java2
1) "1"
2) "2"

Redis接收的是UTF-8的編碼,如果是中文一個漢字將佔3位返回。

獲取值長度

語法:strlen key

127.0.0.1:6379[2]> strlen javastack
(integer) 3

追加內容

語法:append key value

127.0.0.1:6379[2]> append javastack hi
(integer) 5

向鍵值尾部新增,如上命令執行後由666變成666hi

獲取部分字元

語法:getrange key start end

> 127.0.0.1:6379[2]> getrange javastack 0 4
"javas"

集合操作命令

集合型別和列表型別相似,只不過是集合是無序且不可重複的。

集合

儲存值

語法:sadd key member [member …]

// 這裡有8個值(2個java),只存了7個
127.0.0.1:6379> sadd langs java php c++ go ruby python kotlin java
(integer) 7

獲取元素

獲取所有元素語法:smembers key

127.0.0.1:6379> smembers langs
1) "php"
2) "kotlin"
3) "c++"
4) "go"
5) "ruby"
6) "python"
7) "java"

隨機獲取語法:srandmember langs count

127.0.0.1:6379> srandmember langs 3
1) "c++"
2) "java"
3) "php"

判斷集合是否存在元素

語法:sismember key member

127.0.0.1:6379> sismember langs go
(integer) 1

獲取集合元素個數

語法:scard key

127.0.0.1:6379> scard langs
(integer) 7

刪除集合元素

語法:srem key member [member …]

127.0.0.1:6379> srem langs ruby kotlin
(integer) 2

彈出元素

語法:spop key [count]

127.0.0.1:6379> spop langs 2
1) "go"
2) "java"

有序集合

和列表的區別:

1、列表使用連結串列實現,兩頭快,中間慢。有序集合是散列表和跳躍表實現的,即使讀取中間的元素也比較快。

2、列表不能調整元素位置,有序集合能。

3、有序集合比列表更佔記憶體。

儲存值

語法:zadd key [NX|XX] [CH] [INCR] score member [score member …]

127.0.0.1:6379> zadd footCounts 16011 tid 20082 huny 2893 nosy
(integer) 3

獲取元素分數

語法:zscore key member

127.0.0.1:6379> zscore footCounts tid
"16011"

獲取排名範圍排名語法:zrange key start stop [WITHSCORES]

// 獲取所有,沒有分數
127.0.0.1:6379> zrange footCounts 0 -1
1) "nosy"
2) "tid"
3) "huny"

// 獲取所有及分數
127.0.0.1:6379> zrange footCounts 0 -1 Withscores
1) "nosy"
2) "2893"
3) "tid"
4) "16011"
5) "huny"
6) "20082"

獲取指定分數範圍排名語法:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

127.0.0.1:6379> zrangebyscore footCounts 3000 30000 withscores limit 0 1
1) "tid"
2) "16011"

增加指定元素分數

語法:zincrby key increment member

127.0.0.1:6379> zincrby footCounts 2000 tid
"18011"

獲取集合元素個數

語法:zcard key

127.0.0.1:6379> zcard footCounts
(integer) 3

獲取指定範圍分數個數

語法:zcount key min max

127.0.0.1:6379> zcount footCounts 2000 20000
(integer) 2

刪除指定元素

語法:zrem key member [member …]

127.0.0.1:6379> zrem footCounts huny
(integer) 1

獲取元素排名

語法:zrank key member

127.0.0.1:6379> zrank footCounts tid
(integer) 1

列表操作命令

列表型別是一個有序的欄位串列表,內部是使用雙向連結串列實現,所有可以向兩端操作元素,獲取兩端的資料速度快,通過索引到具體的行數比較慢。

列表型別的元素是有序且可以重複的。

儲存值

左端存值語法:lpush key value [value …]

127.0.0.1:6379> lpush list lily sandy
(integer) 2

右端存值語法:rpush key value [value …]

127.0.0.1:6379> rpush list tom kitty
(integer) 4

索引存值語法:lset key index value

127.0.0.1:6379> lset list 3 uto
OK

彈出元素

左端彈出語法:lpop key

127.0.0.1:6379> lpop list
"sandy"

右端彈出語法:rpop key

127.0.0.1:6379> rpop list
"kitty"

獲取元素個數

語法:llen key

127.0.0.1:6379> llen list
(integer) 2

獲取列表元素

兩邊獲取語法:lrange key start stop

127.0.0.1:6379> lpush users tom kitty land pony jack maddy
(integer) 6

127.0.0.1:6379> lrange users 0 3
1) "maddy"
2) "jack"
3) "pony"
4) "land"

// 獲取所有
127.0.0.1:6379> lrange users 0 -1
1) "maddy"
2) "jack"
3) "pony"
4) "land"
5) "kitty"
6) "tom"

// 從右端索引
127.0.0.1:6379> lrange users -3 -1
1) "land"
2) "kitty"
3) "tom"

索引獲取語法:lindex key index

127.0.0.1:6379> lindex list 2
"ketty"

// 從右端獲取
127.0.0.1:6379> lindex list -5
"sady"

刪除元素

根據值刪除語法:lrem key count value

127.0.0.1:6379> lpush userids 111 222 111 222 222 333 222 222
(integer) 8

// count=0 刪除所有
127.0.0.1:6379> lrem userids 0 111
(integer) 2

// count > 0 從左端刪除前count個
127.0.0.1:6379> lrem userids 3 222
(integer) 3

// count < 0 從右端刪除前count個
127.0.0.1:6379> lrem userids -3 222
(integer) 2

範圍刪除語法:ltrim key start stop

// 只保留2-4之間的元素
127.0.0.1:6379> ltrim list 2 4
OK

雜湊操作命令

redis字串型別鍵和值是字典結構形式,這裡的雜湊型別其值也可以是字典結構。

存放鍵值

單個語法:hset key field value

127.0.0.1:6379> hset user name javastack
(integer) 1

多個語法:hmset key field value [field value …]

127.0.0.1:6379> hmset user name javastack age 20 address china
OK

不存在時語法:hsetnx key field value

127.0.0.1:6379> hsetnx user tall 180
(integer) 0

獲取欄位值

單個語法:hget key field

127.0.0.1:6379> hget user age
"20"

多個語法:hmget key field [field …]

127.0.0.1:6379> hmget user name age address
1) "javastack"
2) "20"
3) "china"

獲取所有鍵與值語法:hgetall key

127.0.0.1:6379> hgetall user
1) "name"
2) "javastack"
3) "age"
4) "20"
5) "address"
6) "china"

獲取所有欄位語法:hkeys key

127.0.0.1:6379> hkeys user
1) "name"
2) "address"
3) "tall"
4) "age"

獲取所有值語法:hvals key

127.0.0.1:6379> hvals user
1) "javastack"
2) "china"
3) "170"
4) "20"

判斷欄位是否存在

語法:hexists key field

127.0.0.1:6379> hexists user address
(integer) 1

獲取欄位數量

語法:hlen key

127.0.0.1:6379> hlen user
(integer) 4

遞增/減

語法:hincrby key field increment

127.0.0.1:6379> hincrby user tall -10
(integer) 170

刪除欄位

語法:hdel key field [field …]

127.0.0.1:6379> hdel user age
(integer) 1

都是基本的命令用法,不會用了就來翻一下吧!

相關推薦

Redis 常用操作命令非常詳細

下面總結並演示了 Redis 的 常用管理命令、key 操作、字串、集合、列表、雜湊型別的操作命令。 你需要掌握的 Redis 知識 更多請在後臺回覆關鍵字:Redis。 常用管理命令 1、啟動Redis > redis-server [--port 63

Redis 常用操作命令詳細介紹!!!!!

Redis常用管理命令。 1、啟動Redis。     1.1 通過命令形式。 redis-server [--port 6379]     1.2通過配置來啟動Redis。 redis-server [xx/xx/redis/conf] Redis預設埠號673

Redis常用操作命令

丟失 清空 老用戶 fix sla config targe code htm 1、config get dir 獲取工作目錄 2、flushall 清空整個redis服務器的數據(刪除所有數據庫的所有 key) 3、flushdb 清空當前數據庫中的所有key 4、inf

Mac下如何用SSH連接遠程Linux服務器及Linux一些常用操作命令更新中.....

oot .... 地址 密碼 res ini 更新 目錄 讀寫 1、 終端命令   a).打開Mac的命令終端   b).輸入ssh -p 22 [email protected] 它會提示你輸入密碼,輸入正確的密碼之後,你就發現已經登陸成功了.(22: 端口號 roo

Redis常用操作命令大全

1、Redis常用操作命令大全。 常用管理命令 1、啟動Redis > redis-server [--port 6379] 如果命令引數過多,建議通過配置檔案來啟動Redis。 > redis-server [xx

Redis常用操作命令-ouyangjun

說明:由於我電腦是32位作業系統,所有就不提供redis軟體下載地址了,請到官網下載使用。          軟體解壓之後,可放置到一個常用目錄,我是放置在:E:\dev\Redis-3.2.100,具體內容截圖如下:開啟cmd命令視窗,通過cd命令切換到E:\dev\Red

【精】Redis常用操作命令

Redis基本資料型別的操作Keys操作keys *    列出所有的keyexists k1    判斷k1是否存在move k1 2    將k1移動到2號庫select 2    切換到2號庫select 0ttl k1    檢視k1的過期時間,-1代表永不過期,-2

Redis 常用操作命令 之 string型別

string型別字串型別是 Redis 中最為基礎的資料儲存型別,它在 Redis 中是二進位制安全的,這便意味著該型別可以接受任何格式的資料,如JPEG影象資料或Json物件描述資訊等。在Redis中字串型別的Value最多可以容納的資料長度是512M。儲存如果設定的鍵不存

redis的五大數據類型以及與 key 關鍵字相關的常用操作命令

redis數據類型 key關鍵字相關的指令 redis學習 1、redis的五大數據類型: 先來看看redis官方網上文檔 的介紹: 這裏簡單地說,就是redis不是一個普通的 key-value 存儲,而是一個數據結構服務器,支持各種不同 類型的值,這

redis常見資料型別操作命令Java中使用Jedis操作Redis

redis常見資料型別操作命令 可參考地址:Http://redisdoc.com/ Java中使用Jedis操作Redis: https://www.cnblogs.com/liuling/p/2014-4-19-04.html redis鍵(key)

MongoDB建立表步驟Mongo常用的資料庫操作命令查詢新增更新刪除_MongoDB 效能監測

->use Admin         (切換到建立使用者) ->db.TestDb          (建立資料庫) ->db.addUser(“userName”,”Pwd”)    建立使用者 ->db.auth(“userName”,

spark/hdfs..操作命令常用

1.檢視 hdfs 裡檔案 hadoop fs -ls -R / 2.在 hdfs中新建目錄 hadoop fs -mkdir -p /data/wordcount 3.上傳檔案到hdfs hadoop fs -put /usr/local/clu

應小姐姐要求整理常用Git操作命令她都學會了你確定不收藏

前言 因為個人原因,轉化了部門之後已經很久沒有接觸過開發層級的東西了,好多東西基本都忘記了,但是新的部門有時候會用到相應的研發部的程式碼和文件手冊,所以耳邊就充斥這一句話 這個為什麼下載不了?這個為什麼打不開啊? 我的天吶,實在是受不了這樣的語言,今天,當小姐姐再一次找到我的時候(真的不是因為小姐姐的原因

linux下一些常用操作命令

linux 防火墻 端口 1、兩個服務器ssh免授權:ssh-keygen -t rsa 一直回車至結束ssh-copy-id -i /root/.ssh/id_rsa.pub 遠程ip 然後回車 輸入遠程ip密碼搞定,以後訪問就不用驗證密碼了2、壓縮和解壓縮命令: .tar

【Linux】Linux中常用操作命令

詳細信息 hadoop 用戶組 軟件 name vim使用 title redhat tail Linux簡介及Ubuntu安裝 常見指令 系統管理命令 打包壓縮相關命令 關機/重啟機器 Linux管道 Linux軟件包管理 vim使用 用戶及用戶組管理 文件權限管理

linux下svn的常用操作命令總結

svn版本管理導入代碼文件到 repo 版本庫我的代碼文件存放在 /var/www/html/; svn代碼版本庫的路徑 /application/svndata/repo (也就是剛剛我們創建的版本庫的位置);執行導入命令: svn import /var/www/html/svntest file:///

linux常用操作命令

bsp 文件內容 查找 remove move 分頁 force pwd 搜索 常用指令 ls   顯示文件或目錄(list) -l 列出文件詳細信息l(list) -a 列出當前目錄下所有文件及目錄,

git 常用操作命令

進行 歷史 指定 demo 新的 地址 克隆 保存 txt文件 記錄下工作中,常用的Git命令操作,一個項目經常是多人協作開發,使用好git是開發人員必備的技能,下面記錄下一些基本的git操作,後續會記錄git解決沖突,合並分支,回滾,tag操作等。 克隆項目 - git

Centos版Linux 一些常用操作命令

chmod passwd perm sea 發生 搜索命令 ted profile more Linux命令收集 1、文件處理命令:ls 功能描述:顯示目錄文件 命令英文原意:list 命令所在路徑:/bin/ls 執行權限:所有用戶 語法: ls 選項

DOS當中的基本操作命令如何切換磁盤如何查看文件和文件夾如何清屏進入文件夾的命令javac是什麽意思作用是什麽?DOS如何建文件夾?退出文件夾?

ava mpi dos compile 通配符 pil jdk 使用 onf 如何切換磁盤:使用盤符+:舉例 d: 如何查看文件和文件夾 dir/w 如何清屏: cls (clear screen) 進入文件夾的命令cd ,舉例cd JDK javac是什麽意思,c 是co