1. 程式人生 > >Redis-cli 常用命令與例項

Redis-cli 常用命令與例項

1. 字串相關操作

1. 設定值(set key value)

# set key value [EX seconds] [PX milliseconds] [NX|XX]
127.0.0.1:6379> set name test1
OK

2. 獲取值(get key), 刪除(del key)

# get key
127.0.0.1:6379> get name
"test1"

3. 不存在才設定,否則返回0 (setnx key value)

# setnx key value
127.0.0.1:6379> setnx name test2
(integer) 0

4. 設定有效期(setex key seconds value)

# setex key seconds value
127.0.0.1:6379> setex test1 10 test1
OK

5. 字串替換(setrange key offset value)

# setrange key offset value

127.0.0.1:6379> set email 123456789@qq.com
OK
127.0.0.1:6379> setrange email 10 ww
(integer) 16
127.0.0.1:6379> get email
"[email protected]"

6. 一次設定多個值(mset key value [key value …])

# mset key value [key value ...]
127.0.0.1:6379> mset test1 test1 test2 test2 test3 test3
OK
# mget key [key...]
127.0.0.1:6379> mget test1 test2 test3
1) "test1"
2) "test2"
3) "test3"

7. 先獲取後設置(getset key value)

# getset key value

127.0.0.1:6379> getset test1 [email protected]1
"test1"
127.0.0.1:6379> get test1
"[email protected]"

8. 對某個值遞增或遞減(incr key,decr key)

127.0.0.1:6379> set index 1
OK
127.0.0.1:6379> incr index
(integer) 2
127.0.0.1:6379> decr index
(integer) 1

9. 指定長度增加或減少(incrby key increment,decrby key increment)

127.0.0.1:6379> incrby index 3
(integer) 4
127.0.0.1:6379> decrby index 2
(integer) 2

10. 字串追加(append key value)

127.0.0.1:6379> get name
"test1"
# append key value
127.0.0.1:6379> append name test
(integer) 9
127.0.0.1:6379> get name
"test1test"

11. 獲取字串長度(strlen key)

127.0.0.1:6379> get name
"test1test"
127.0.0.1:6379> strlen name
(integer) 9

2. Hash 型別

1. 設定或取值(hset key field value,hget key field)

# hset key field value
127.0.0.1:6379> hset user id 1
(integer) 1
127.0.0.1:6379> hset user name zhangsan
(integer) 1
127.0.0.1:6379> hset user age 18
(integer) 1
# hget key field
# 注意,取值的時候需要指定hash中的field
127.0.0.1:6379> hget user
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> hget user name
"zhangsan"
127.0.0.1:6379> hget user id
"1"
127.0.0.1:6379> hget user age
"18"

2. 批量設定或獲取(hmset ,hmget)

# hmset key field value [field value ...]
127.0.0.1:6379> hmset user1 id 10 name lisi age 18
OK
# 獲取時也必須要指定field
127.0.0.1:6379> hmget user1
(error) ERR wrong number of arguments for 'hmget' command
# hmget  key field [field ...]
127.0.0.1:6379> hmget user1 id name age
1) "10"
2) "lisi"
3) "18"

3. 不存在才設定(hsetnx key field value)

127.0.0.1:6379> hmget user id age name
1) "1"
2) "18"
3) "zhangsan"
# user 已經存在id,在設定返回0標示失敗
127.0.0.1:6379> hsetnx user id 2
(integer) 0
127.0.0.1:6379> hmget user id age name
1) "1"
2) "18"
3) "zhangsan"
# user 不存在sex,返回1設定成功
127.0.0.1:6379> hsetnx user sex 1
(integer) 1
127.0.0.1:6379> hmget user id age name sex
1) "1"
2) "18"
3) "zhangsan"
4) "1"

4. 判斷key 在hash中是否存在(hexists key field)

# 存在返回1,不存在返回0
127.0.0.1:6379> hexists user id
(integer) 1
127.0.0.1:6379> hexists user score
(integer) 0

5. 集合遞增(hincrby)

# hincrby key field increment
127.0.0.1:6379> hget user id
"2"
127.0.0.1:6379> hincrby user id 1
(integer) 3
127.0.0.1:6379> hget user id
"3"

6. 集合field個數(hlen), (hkeys)返回hash中所有field

127.0.0.1:6379> hlen user
(integer) 4
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "age"
4) "sex"

7. 刪除hash指定field(hdel)


127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "age"
4) "sex"
# hdel key field
127.0.0.1:6379> hdel user sex
(integer) 1
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "age"

8. 獲取hash中所有值(hvals key)

127.0.0.1:6379> hvals user
1) "3"
2) "zhangsan"
3) "18"

9. 獲取hash中key和value(hgetall key)

127.0.0.1:6379> hgetall user 
1) "id"
2) "3"
3) "name"
4) "zhangsan"
5) "age"
6) "18"

3. List 型別操作

可以使用List實現佇列或者棧,可理解為橫向陣列,取資料從左端取
List 下標從左往右 0,1,2,3…; 從右往左 -1,-2,-3,-4…

1. lpush 左端新增,相當於棧先進後出

# lpush 依次新增到list左端
# lpush key value [value...]
127.0.0.1:6379> lpush list1 hello world
(integer) 2
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "hello"

2. rpush 右端新增,相當於在隊尾新增元素

# rpush 在List右端新增元素
# rpush key value [value...]
127.0.0.1:6379> rpush list2 hello world
(integer) 2
127.0.0.1:6379> lrange list2 0 -1
1) "hello"
2) "world"

3. 插入元素(linsert key before|after pivot value)

# linsert key before|after pivot value
127.0.0.1:6379> linsert list1 before 'hello' test
(integer) 3
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test"
3) "hello"

4. 指定下標元素替換(lset key index value)

127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test"
3) "hello"
127.0.0.1:6379> lset list1 1 test1
OK
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test1"
3) "hello"

5. 刪除元素(lrem key count value)

count > 0 從左往右 刪除count個
count < 0 從右往左 刪除count個
count = 0 刪除所有匹配

127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test2"
3) "world"
127.0.0.1:6379> lrem list1 1 test2
(integer) 1
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "world"

6. 保留指定範圍內的資料(rtrim key start stop)

127.0.0.1:6379> rpush lists i love java hello world
(integer) 5
127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
5) "world"
127.0.0.1:6379> ltrim lists 0 3
OK
127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"

7. lpop 從左端彈出元素

127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
5) "world"
127.0.0.1:6379> lpop lists
"i"

8. rpop 從右端彈出元素

127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
5) "world"
127.0.0.1:6379> lpop lists
"i"
127.0.0.1:6379> rpop lists
"world"

9 rpoplpush 右端彈出左端新增

127.0.0.1:6379> lrange lists 0 -1
1) "love"
2) "java"
3) "hello"
# rpoplpush source destination
127.0.0.1:6379> rpoplpush lists lists
"hello"
127.0.0.1:6379> lrange lists 0 -1
1) "hello"
2) "love"
3) "java"

10. lindex 返回List中索引為index的元素


127.0.0.1:6379> lrange lists 0 -1
1) "java"
2) "love"
3) "i"
127.0.0.1:6379> lindex lists 0
"java"
127.0.0.1:6379> lindex lists -1
"i"
127.0.0.1:6379> lindex lists -2
"love"
127.0.0.1:6379> lindex lists -3
"java"

11. llen 返回List中元素個數

127.0.0.1:6379> lrange lists 0 -1
1) "java"
2) "love"
3) "i"

127.0.0.1:6379> llen lists
(integer) 3

4. Set和ZSet集合

set 無序,Zset有序;元素不能重複,可以做集合操作交集、並集、差集

1. 新增元素(sadd key member [member…])

127.0.0.1:6379> sadd set1 i love java
(integer) 3
127.0.0.1:6379> smembers set1
1) "love"
2) "java"
3) "i"

2. 刪除元素(srem key member [member…])

127.0.0.1:6379> smembers set1
1) "love"
2) "java"
3) "i"

127.0.0.1:6379> srem set1 i love
(integer) 2
127.0.0.1:6379> smembers set1
1) "java"

3. spop 隨機彈出元素(spop key)

127.0.0.1:6379> SMEMBERS set1
1) "love"
2) "c++"
3) "i"
4) "java"
127.0.0.1:6379> spop set1
"love"
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"

4. 集合不同元素,前面那個為標準(sdiff key key…)

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
127.0.0.1:6379> sdiff set1 set2
1) "java"
127.0.0.1:6379> sdiff set2 set1
1) "love"
2) "python"

5. sdiffstore 將返回的不同元素儲存到新的集合中

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"

127.0.0.1:6379> sdiffstore set3 set2 set1
(integer) 2
127.0.0.1:6379> smembers set3
1) "love"
2) "python"

6. 取集合交集(sinter key [key…])

sinterstore 取交集並存在新的set中

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
127.0.0.1:6379> sinter set1 set2
1) "c++"
2) "i"

7. 集合取並集(sunion key [key…])

sunionstore 取並集並存儲到新的set中

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"

127.0.0.1:6379> sunion set1 set2
1) "love"
2) "c++"
3) "i"
4) "python"
5) "java"

8. 移動集合中元素(smove source destination member)

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"

127.0.0.1:6379> smove set1 set2 java
(integer) 1

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"

127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
5) "java"

9. 檢視集合中元素個數(scard key)

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
127.0.0.1:6379> scard set1
(integer) 2

10. 集合是否包含元素(sismember key member)

127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
5) "java"
127.0.0.1:6379> sismember set2 i
(integer) 1
127.0.0.1:6379> sismember set2 c
(integer) 0

11. 隨機返回set中元素(srandmember key count)

127.0.0.1:6379> smembers set2
1) "love"
2) "i"
3) "c++"
4) "python"
5) "java"
127.0.0.1:6379> srandmember set2 2
1) "i"
2) "java"
127.0.0.1:6379> smembers set2
1) "love"
2) "i"
3) "c++"
4) "python"
5) "java"

12. ZSet 新增元素

ZSet 中新增元素:zadd key [NX|XX] [CH] [INCR] score member [score member …]

顯示zset中元素:zrange key start stop [WITHSCORES]


127.0.0.1:6379> zadd zset1 1 i 2 love 3 java 4 c++ 5 python
(integer) 5
127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "love"
3) "java"
4) "c++"
5) "python"
127.0.0.1:6379> zrange zset 0 -1 withscores
(empty list or set)
127.0.0.1:6379> zrange zset1 0 -1 withscores
 1) "i"
 2) "1"
 3) "love"
 4) "2"
 5) "java"
 6) "3"
 7) "c++"
 8) "4"
 9) "python"
10) "5"

13. Zset刪除元素(zrem key member [member…])

127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "love"
3) "java"
4) "c++"
5) "python"
127.0.0.1:6379> zrem zset1 i
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1
1) "love"
2) "java"
3) "c++"
4) "python"

14. 自動遞增或遞減(zincrby key increment member)

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "love"
8) "8"
127.0.0.1:6379> zincrby zset1 10 love
"18"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "love"
8) "18"

127.0.0.1:6379> zincrby zset1 -5 love
"13"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "love"
8) "13"

15. 查詢根據分數區間範圍(zrangebyscore )


127.0.0.1:6379> zrange zset1 0 -1 withscores
 1) "java"
 2) "3"
 3) "c++"
 4) "4"
 5) "python"
 6) "5"
 7) "age"
 8) "10"
 9) "love"
10) "13"
127.0.0.1:6379> zrangebyscore zset1 5 20
1) "python"
2) "age"
3) "love"

16. 根據索引號範圍刪除(zremrangebyrank)


127.0.0.1:6379> zadd zset1 1 i 2 love 3 java 4 python 5 c++ 6 c
(integer) 6
127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "love"
3) "java"
4) "python"
5) "c++"
6) "c"
127.0.0.1:6379> zremrangebyrank zset1 0 1
(integer) 2
127.0.0.1:6379> zrange zset1 0 -1
1) "java"
2) "python"
3) "c++"
4) "c"

17. 根據分數範圍刪除(zremrangebyscore)

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "python"
4) "4"
5) "c++"
6) "5"
7) "c"
8) "6"
127.0.0.1:6379> zremrangebyscore zset1 3 5
(integer) 3
127.0.0.1:6379> zrange zset1 0 -1
1) "c"

18. 返回Zset元素索引號(zrank key member)

zrevrank key member 按照倒序方式獲取索引

127.0.0.1:6379> zrange zset2 0 -1
1) "i"
2) "love"
3) "java"
4) "python"
5) "c++"
6) "c"
127.0.0.1:6379> zrank zset2 python
(integer) 
            
           

相關推薦

Redis-cli 常用命令例項

1. 字串相關操作 1. 設定值(set key value) 2. 獲取值(get key), 刪除(del key) 3. 不存在才設定,否則返回0 (setnx key valu

Redis常用命令Java整合及高階應用篇

一,redis是什麼? ​ 首先資料庫分為關係型資料庫和非關係型資料庫,關係型資料庫是採用關係模型來組織資料的資料庫,簡單來說就是二維表格模型,同時保證事務的一致性。 ​ 相反非關係型資料庫採用key-value形式進行儲存,是一種資料結構化儲存方法的集合,具有分散式性質。 ​ Redis是當前比較熱門的NO

Redis常用命令高階應用

附: 127.0.0.1:6379> set xiaofei 小飛 OK 127.0.0.1:6379> get xiaofei "\xe5\xb0\x8f\xe9\xa3\x9e" 127.0.0.1:6379> quit [[email protected] redis-2.8

Redis資料庫的學習實踐—Redis常用命令及高階應用

釋出訂閱(pub/sub)是一種訊息通訊模式,主要的目的是接觸訊息釋出者和訊息訂閱者之間的耦合,Redis作為一個pub/sub的server,在訂閱者和釋出者之間起到了訊息路由的功能。訂閱者可以通過subscribe和psubscribe命令向redis server訂閱自己感興趣的訊息型別,redis將

Shell常用命令vim編輯命令

類型 查看文件內容 另一個 郵編 輸出 逆序 分享 建立 htm 原博地址:https://www.cnblogs.com/BaiYiShaoNian/p/4831022.html Shell常用命令總結: 1、ls命令:列出文件 ls -a 列出當前目錄下的所有文件和文件

bash常用命令技巧

Bash特性簡單介紹一、bash介紹: bash是一個為GNU計劃編寫的Unix shell,它的名字是一系列縮寫:Bourne-Again SHell。 Bash是許多Linux發行版默認的Shell。還有許多其他傳統UNIX上用的Shell,如:tcsh、csh、ash、bsh、ksh等。二、bas

Docker 常用命令操作

auto 行數 文件夾 works 操作 接受 ports uil rac 介紹 此命令集合版本為 1.11.1 及以上 基礎類 查看docker信息 # 查看docker版本 docker version # 顯示docker系統的信息 docker

Redis探索之路(六):Redis常用命令

測試 info mov per redis 相關 選擇 客戶 del 一:鍵值相關命令 1.keys Pattern模糊查詢 keys my* 2.exists某個key是否存在 exists key1 3.del 刪除一個key del key1 4.ex

總結Linux 、Redis 操作常用命令(轉)

tab ESS 哈希 大對象 由於 edi always wan 情況下 Redis的配置 1. Redis默認不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程 daemonize no 2. 當Redis以守護進程方式運行時,Redis默認會把

GDB常用命令Visual Studio對比

兩種偵錯程式的字檢查功能一覽表 命令名稱 GDB Visual Studio 執行程式 runs [args] F5:Start Debugging (開始除錯)

Docker CLI常用命令說明

文章地址:https://docs.docker.com/engine/reference/commandline/docker/ 命令說明docker attach 將本地標準輸入,輸出和錯誤流附加到正在執行的容器docker build 從Dockerfile構建映像docker check

Angular CLI 常用命令

Angular CLI 是 Angular 客戶端命令列工具,提供非常多的命令來簡化 Angular 的開發。 本文總結了在實際專案中經常會用到的 Angular CLI 命令。 獲取幫助(ng -h) ng -h等同於ng --help,跟所有的其他命令列一樣,用於檢視所

redis常用命令、問題和一些快取清理

Q、C盤空間不足 解決方式:多資料夾檢視大小,逐步縮小方位, 最終定位位置: 快取清理目錄:C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Redis [圖片] Q、檢視redis版本和redis埠: 1

gitHub 常用命令 合並沖突問題

本地 界面 想要 合並沖突 working round 自動 spa 檢出 git branch 查看所在當前分支(倉庫) git pull 刷新當前分支(倉庫)文件到本機 git status 查看狀態提示On branch master Your branch is u

第二節----Redis keys 常用命令

       常用的命令需要記住。不只是string型別用到,hash型別也有key,好像其它所有型別都有Key。 2.1  刪除KEY         DEL  KeyName 

gitHub 常用命令 合併衝突問題

git branch 檢視所在當前分支(倉庫) git pull 重新整理當前分支(倉庫)檔案到本機 git status 檢視狀態提示On branch master Your branch is up to date with 'origin/master'.nothing to commit, wo

Linux常用命令常用操作

文件的 登陸 找文件 相關 日誌 -- 灰色 常用操作 單個字符 常用命令 普通命令 file 查看文件類型 pwd 打印當前目錄 ping 發數據包 touch

redis操作常用命令(String型別資料)

前面已經寫過如何在Ubuntu上部署redis了,https://blog.csdn.net/zc_ad/article/details/84614991 在window中使用redis-cli連線伺服器中的redis-server 1,建立clirun.bat,並在裡面新增一下內容:1

Linux常用命令OA信用盤原始碼出售

getconf LONG_BIT 檢視系統位數 建立新使用者:OA信用盤原始碼出售《企娥21717 93408》 sudo adduser username 如果需要讓此使用者有root許可權,執行命令: [email protected]:~# sudo vim /etc/sudoers

Docker的常用命令文件

docker命令詳解 此次操作都是在ubuntu17.01下進行,docker版本是17.10.0-ce,docker-compose是1.17.1. docker 存在的意義 · 使用dokcer加速本地開發和構建,開發人員可以構建、執行並分享Docker容器,容器可以在開發