Redis的常用命令小結(jié)
1. Redis 數(shù)據(jù)結(jié)構(gòu)
Redis 是一個(gè)鍵值對(duì)的數(shù)據(jù)庫(kù), 也就是 key-value 類型的, 這里的 key 一般都是String類型的, value的類型可以有多種.
基本類型:
- String 類型
- Hash 類型
- List 類型
- Set 類型
- SortedSet 類型
特殊數(shù)據(jù)類型:
- Gerspatial 地理位置
- Hyperloglog 基數(shù)計(jì)數(shù)
- BitMap 位圖
2. Redis 通用命令
命令 | 作用 |
---|---|
KEYS | 查看所有符合模板的key |
DEL | 刪除一個(gè)指定的key |
EXISTS | 判斷key是否存在 |
EXPIRE | 給key設(shè)置有效期,到期會(huì)刪除key |
TTL | 查看key的剩余有效期 |
HELP [command] | 查看命令的具體用法 |
注: Redis 的key允許有多個(gè)單詞形成層級(jí)結(jié)構(gòu), 多個(gè)單詞之間用:
隔開(kāi), 例如 blog:user:1
① KEYS
② DEL
③ EXISTS
④ EXPIRE
⑤ TTL
這里返回 -2
就是刪除了返回 -1
就是存在且沒(méi)有過(guò)期時(shí)間
⑥ 層級(jí)結(jié)構(gòu)
3. String 類型
value 為String類型, 根據(jù)不同的字符串格式, 也可以分為幾類
- string: 普通字符串
- int: 整數(shù)
- float: 浮點(diǎn)數(shù)
注: 字符串類型最大空間不能超過(guò)512M
可以使用help @string
來(lái)查看string類型的所有方法, 這里展示一些常用的命令.
命令 | 作用 |
---|---|
SET [key] [value] | 添加或者修改已經(jīng)存在的一個(gè) String 類型的鍵值對(duì) |
GET [key] | 根據(jù) key 獲取 String 類型的 value |
MSET [key] [value] ( [key] [value] …) | 批量添加多個(gè) String 類型鍵值對(duì) |
MGET [key] ( [key] …) | 根據(jù)多個(gè)key獲取多個(gè)String類型的value |
INCR [key] | 讓 key 自增1個(gè) |
INCRBY [key] [increment] | 讓 key 自增 increment 個(gè) |
INCRBYFLOAT [key] [increment] | 讓浮點(diǎn)型 key 自增 increment 個(gè) |
SETNX [key] [value] | 添加一個(gè)String類型鍵值對(duì), 前提key不存在,否則不執(zhí)行 |
SETEX [key] [second] [value] | 添加一個(gè)String類型鍵值對(duì)并指定有效時(shí)間 |
① SET
② GET
③ MSET
④ MGET
⑤ INCR
⑥ INCRBY
⑦ INCRBYFLOAT
⑧ SETNX
⑨ SETEX
4. Hash 類型
Hash類型的value, value內(nèi)是 field+value
的格式
可以使用help @hash
來(lái)查看string類型的所有方法, 這里展示一些常用的命令.
命令 | 作用 |
---|---|
HSET [key] [field] [value] ([filed] [value] …) | 添加或者修改hash類型key的field的值 |
HGET [key] [field] | 獲取一個(gè)hash類型key的field的值 |
HMSET [key] [field] [value] ([filed] [value] …) | 批量添加多個(gè)hash類型key的field的值 |
HMGET [key] [field] ( [field] …) | 批量獲取多個(gè)hash類型key的field的值 |
HGETALL [key] | 獲取hash類型的key中所有的field和value |
HKEYS [key] | 獲取一個(gè)hash類型的key中所有的field |
HVALS [key] | 獲取一個(gè)hash類型的key中所有的value |
HINCRBY [key] [field] [increment] | 讓hash類型key的字段自增 |
HSETNX [key] [field] [value] | 添加一個(gè)hash類型的key的field的值, 如果存在就不執(zhí)行 |
① HSET
這里hset可以添加一個(gè),也可以批量添加
② HGET
這里的hget只能獲取一個(gè)key的field的值
③ HMSET 和 HMGET
④ HKEYS 和 HVALS
⑤ HINCRBY
⑥ HSETNX
5. List 類型
這里L(fēng)ist可以看成一個(gè)雙向鏈表特點(diǎn): ① 有序 ② 元素可重復(fù) ③ 插入刪除快 ④ 查詢速度一般
命令 | 作用 |
---|---|
LPUSH [key] [element] ([element] …) | 向左側(cè)插入一個(gè)或者多個(gè)元素 |
LPOP [key] | 移除并返回列表左側(cè)的第一個(gè)元素, 沒(méi)有返回nil |
RPUSH [key] [element] ([element] …) | 向右側(cè)插入一個(gè)或者多個(gè)元素 |
RPOP [key] | 移除并返回列表右側(cè)第一個(gè)元素, 沒(méi)有返回nil |
LRANGE [key] [start] [stop] | 返回一段范圍內(nèi)的所有元素 |
BLPOP [key] ([key]…) [timeout] | 在沒(méi)有元素的時(shí)候等待指定時(shí)間, 而不是返回nil |
BRPOP [key] ([key]…) [timeout] | 在沒(méi)有元素的時(shí)候等待指定時(shí)間, 而不是返回nil |
① LPUSH
② LPOP
③ RPUSH
④ RPOP
⑤ LRANGE
⑥ BRPOP
6. Set 類型
和Java的Set類似
特點(diǎn): 1. 無(wú)序 2. 元素不可重復(fù) 3. 查找快 4. 支持交集. 并集, 差集功能
命令 | 作用 |
---|---|
SADD [key] [member] ([member] …) | 添加一個(gè)元素 |
SREM [key] [member] ([member] …) | 刪除一個(gè)元素 |
SCARD [key] | 返回元素個(gè)數(shù) |
SISMEMBER [key] [member] | 判斷是否存在一個(gè)元素 |
SMEMBERS [key] | 獲取所有的元素 |
SINTER [key] ([key] … ) | 求key1 和 key2的交集 |
SDIFF [key] ([key] … ) | 求key1 和 key2的差集 |
SUNION [key] ([key] … ) | 求key1 和 key2的并集 |
案例 將下列數(shù)據(jù)用 Redis 的Set集合來(lái)存儲(chǔ)
A 的好友有: B , C , D
B 的好友有: C , E , F
利用Set的命令實(shí)現(xiàn)下列功能
① 計(jì)算A的好友有多少人
② 計(jì)算A和B的共同好友
③ 查詢是A的好友卻不是B的好友的人是哪些
④ 查詢A和B的總共有哪些好友
⑤ 判斷B是否是A的好友
⑥ 判斷A是否是B的好友
⑦ A刪除B的好友
首先將好友存入到列表里
① 計(jì)算A的好友有多少人
② 計(jì)算A和B的共同好友
③ 查詢是A的好友卻不是B的好友的人是哪些
④ 查詢A和B的總共有哪些好友
⑤ 判斷B是否是A的好友
⑥ 判斷A是否是B的好友
⑦ A刪除B的好友
7. SortedSet 類型
是一個(gè)可排序的Set集合特點(diǎn): 1. 可排序 2. 元素不重復(fù) 3. 查詢速度快
命令 | 作用 |
---|---|
ZADD [key] [score] [member] ([score] [member] …) | 添加一個(gè)或者多個(gè)元素, 如果存在,更新score值 |
ZREM [key] [member] ([member] …) | 刪除指定元素 |
ZSCORE [key] [member] | 獲取指定元素的score值 |
ZRANK [key] [member] | 獲取指定元素的排名 |
ZCARD [key] | 獲取元素個(gè)數(shù) |
ZCOUNT [key] [min] [max] | 統(tǒng)計(jì)指定范圍內(nèi)的元素個(gè)數(shù) |
ZINCRBY [key] [increment] [member] | |
ZRANGE [key] [min] [max] | 獲取指定排名范圍內(nèi)的元素 |
ZRANGEBYSCORE [key] [min] [max] | 獲取指定score范圍內(nèi)的元素 |
ZDIFF [numkeys] key ([key] …) | 差集 |
ZINTER [numkeys] key ([key] …) | 交集 |
ZUNION [numkeys] key ([key] …) | 并集 |
所有排名默認(rèn)是升序, 如果要降序在命令的Z后面添加REV即可, 例如ZREVRANK
案例
將班級(jí)的下列學(xué)生得分情況存入 Redis 的SortedSet中
A 85, B 89, C 82, D 95, E 78, F 92, G 76
實(shí)現(xiàn)以下功能
① 刪除D同學(xué)
② 獲取F同學(xué)的分?jǐn)?shù)
③ 獲取C同學(xué)的排名
④ 查詢80分以下有幾名同學(xué)
⑤ 給F同學(xué)加2分
⑥ 查出成績(jī)前3名的同學(xué)
⑦ 查出成績(jī)80分以下的所有同學(xué)
首先將成績(jī)存入Redis中
① 刪除D同學(xué)
② 獲取F同學(xué)的分?jǐn)?shù)
③ 獲取C同學(xué)的排名
④ 查詢80分以下有幾名同學(xué)
⑤ 給F同學(xué)加2分
⑥ 查出成績(jī)前3名的同學(xué)
⑦ 查出成績(jī)80分以下的所有同學(xué)
到此這篇關(guān)于Redis的常用命令小結(jié)的文章就介紹到這了,更多相關(guān)Redis 常用命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Redis實(shí)現(xiàn)訪問(wèn)次數(shù)限流的方法詳解
這篇文章主要給大家介紹了關(guān)于如何利用Redis實(shí)現(xiàn)訪問(wèn)次數(shù)限流的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02Redis內(nèi)存空間占用及避免數(shù)據(jù)丟失的方法
在現(xiàn)代的互聯(lián)網(wǎng)應(yīng)用中,Redis作為一種高性能的內(nèi)存數(shù)據(jù)庫(kù),被廣泛應(yīng)用于緩存、會(huì)話管理和消息隊(duì)列等場(chǎng)景,然而,Redis的內(nèi)存資源是有限的,過(guò)多的內(nèi)存占用可能會(huì)導(dǎo)致數(shù)據(jù)丟失所以本文將給大家介紹一下Redis內(nèi)存空間占用及避免數(shù)據(jù)丟失的方法2023-08-08解析高可用Redis服務(wù)架構(gòu)分析與搭建方案
我們按照由簡(jiǎn)至繁的步驟,搭建一個(gè)最小型的高可用的Redis服務(wù)。 本文通過(guò)四種方案給大家介紹包含每種方案的優(yōu)缺點(diǎn)及詳細(xì)解說(shuō),具體內(nèi)容詳情跟隨小編一起看看吧2021-06-06Redis實(shí)現(xiàn)附近商鋪的項(xiàng)目實(shí)戰(zhàn)
本文主要介紹了Redis實(shí)現(xiàn)附近商鋪的項(xiàng)目實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01完美解決linux上啟動(dòng)redis后配置文件未生效的問(wèn)題
今天小編就為大家分享一篇完美解決linux上啟動(dòng)redis后配置文件未生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05