Redis常用命令集的使用
一、redis-cli連接redis服務(wù)
1.1 無(wú)密碼本地登錄
# 無(wú)密碼登錄 redis-cli # 如果需要驗(yàn)證可以使用auth命令 127.0.0.1:6379> auth [password] # 例: 127.0.0.1:6379> auth 123456
1.2 指定參數(shù)登錄
這些參數(shù)都是可選的
# 語(yǔ)法 # -h [ip]:指定redis服務(wù)ip,不填默認(rèn)為127.0.0.1 # -p [port]:指定redis服務(wù)端口,不填默認(rèn)為6379 # -a [pwd]:指定redis服務(wù)登錄密碼 # -n [db_number]:指定redis庫(kù)下標(biāo),不填默認(rèn)0 redis-cli -h [ip] -p [port] -a [pwd] -n [db_number] # 例: redis-cli -h 192.168.0.100 -p 6379 -a 123456 -n 9
1.3 使用shell連接操作redis
這里會(huì)直接使用shell腳本操作redis-cli來(lái)實(shí)現(xiàn)數(shù)據(jù)插入和獲取。
- 編寫shell腳本
#!/bin/bash # 插入數(shù)據(jù) echo '開始連接redis插入數(shù)據(jù)' redis-cli -h 127.0.0.1 -a 123456 -n 9 set name Kerwin # 獲取數(shù)據(jù) redis-cli -h 127.0.0.1 -a 123456 -n 9 get name
二、redis運(yùn)維常用命令
2.1、查看redis版本信息
[root@kerwin /]# redis-server -v Redis server v=6.0.20 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=22b80d876b6e8f12
或者客戶端輸入:info server
127.0.0.1:6379> info server # Server redis_version:6.0.20 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:22b80d876b6e8f12 redis_mode:standalone os:Linux 3.10.0-1160.88.1.el7.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:12.2.0 process_id:1 run_id:fbed0123d026af0f7094190c7ebe9baedfbb8b8e tcp_port:6379 uptime_in_seconds:3269 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:2235721 executable:/data/redis-server config_file:/etc/redis/redis.conf io_threads_active:0
2.2、查看服務(wù)所有[部分]信息
使用info [section]查看
- 1、查看所有信息
127.0.0.1:6379> info
- 2、查看具體信息
# 服務(wù)器信息 127.0.0.1:6379> info server # 持久化信息 127.0.0.1:6379> info persistence
三、redis庫(kù)相關(guān)命令
# 切換到1號(hào)庫(kù);redis有16個(gè)初始化庫(kù),編號(hào)0到15,默認(rèn)使用0號(hào)庫(kù) 127.0.0.1:6379> select 1 # 查看當(dāng)前庫(kù)的key的數(shù)量 127.0.0.1:6379> dbsize # 刪除當(dāng)前庫(kù)的全部數(shù)據(jù) 127.0.0.1:6379> flushdb # 刪除所有庫(kù)的全部數(shù)據(jù) 127.0.0.1:6379> flushall
四、redis key相關(guān)命令
# 查看當(dāng)前庫(kù)的全部key keys * # 判斷某個(gè)key是否存在,存在返回1,不存在返回0 exists [key] # 查看某個(gè)key的類型,如果key不存在,則返回none type [key] # 刪除指定的key數(shù)據(jù),成功返回1,失敗返回0 del [key] # 根據(jù)value選擇非阻塞刪除,僅將keys從keyspace元數(shù)據(jù)中刪除,真正的刪除后在后續(xù)異步操作 unlink [key] # 查看某個(gè)key的過(guò)期時(shí)間,單位(秒),-1表示永不過(guò)期,-2表示已經(jīng)過(guò)期 ttl [key] # 給指定的key設(shè)置過(guò)期時(shí)間,單位(秒) expire [key] 10
五、redis 字符串相關(guān)命令
# 添加一條數(shù)據(jù) 例如set k1 v1,添加key為k1,值為v1的數(shù)據(jù) set <key> <value> # 得到某個(gè)key的數(shù)據(jù),例如get k1,得到key為k1的值 get <key> # 將給定的value,追加到某key的原值的末尾,返回追加后的字符長(zhǎng)度 append <key> <value> # 查詢某key的值的長(zhǎng)度 strlen <key> # 當(dāng)key不存在的時(shí)候,才能添加成功,當(dāng)key存在的時(shí)候,不能添加 setnx <key> <value> # 將某個(gè)key的值,數(shù)字增加1,僅僅對(duì)數(shù)字起作用,如果為空,新增值為1 incr <key> # 將某個(gè)key的值,數(shù)字減少1,僅僅對(duì)數(shù)字起作用,如果為空,新增值為-1 decr <key> # 將key中儲(chǔ)存的數(shù)字值增減,自定義步長(zhǎng) incrby/decrby <key> <步長(zhǎng)> # 批量添加 mset <key1> <value1> <key2> <value2> # 批量取值 mget <key1> <key2> # 批量添加,當(dāng)且僅當(dāng)所有的key都不存在(因?yàn)樵有?,一個(gè)失敗則都失敗) msetnx <key1> <value1> <key2> <value2> # 獲取某個(gè)key值的范圍,getrange k1 0 2,包含0位置的元素,和2位置的元素 getrange <key> <起始位置> <結(jié)束位置> # 設(shè)置鍵值的同時(shí)設(shè)置過(guò)期時(shí)間(單位秒) setex <key> <過(guò)期時(shí)間> <value>: # 設(shè)置新值,并返回舊值 getset <key> <value>
六、redis 列表相關(guān)命令
# 從左邊,或者右邊添加數(shù)據(jù) lpush/rpush <key> <value1> <value2> <value3> # 從左邊,或者右邊取出一個(gè)值,列表里這個(gè)值就不存在了 lpop/rpop <key> # 從key1的右邊取一個(gè)值,添加在key2的左邊 rpoplpush <key1> <key2> # 按照索引下角標(biāo)得到元素(從左往右),當(dāng)結(jié)束為值為-1時(shí),代表得到多有,這個(gè)值還在列表中 lrange <key> <起始位置> <結(jié)束位置> # 按照索引,從左往右獲得對(duì)應(yīng)的值 lindex <key> <index> # 獲得列表長(zhǎng)度 llen <key> # 在某個(gè)key下的某個(gè)值的前面/后面添加一個(gè)新的值 linsert <key> before/after <value> <newVlaue> # 刪除某個(gè)key下,刪除n個(gè)值為value的數(shù)據(jù) lrem <key> <n> <value> # 將某個(gè)key下的某個(gè)下角標(biāo)的值換成給定的值 lset <key> <index> <value>
七、redis set集合相關(guān)命令
# 添加數(shù)據(jù),如果值已經(jīng)存在,忽略該值 sadd <key> <value1> <value2> <value3> # 獲取集合中元素?cái)?shù)量 scard <key> # 得到集合中所有的值 smembers <key> # 判斷某個(gè)key中是否存在value,存在返回1,不存在返回0 scard <key>:返回集合的元素個(gè)數(shù) sismember <key> <value> # 刪除某個(gè)key中的某些元素 srem <key> <value1> <value2> # 從key中隨機(jī)取出一個(gè)值,如果值沒(méi)了,那么key就不在了 spop <key> # 從某個(gè)key中,取出n個(gè)值,不會(huì)從集合中刪除 srandmember <key> <n> # 把集合中的一個(gè)值移動(dòng)到另一個(gè)集合 smove <key1> <key2> <value> # 取兩個(gè)集合的交集 sinter <key1> <key2> # 取兩個(gè)集合的并集 sunion <key1> <key2> # 取兩個(gè)集合的差集(在key1中的,不在key2中的) sdiff <key1> <key2>
八、redis hash相關(guān)命令
# 給某個(gè)key哈希表中的field鍵復(fù)制為value hset <key> <field> <value> # 得到某個(gè)key哈希表中某個(gè)field的值 hget <key> <field> # 查看key總數(shù) hlen <key> # 批量加數(shù)據(jù) hmset <key> <field1> <value1> <field2> <value2> # 某個(gè)key哈希表中某個(gè)field是否存在 hexists <key> <field1> # 查看某個(gè)key哈希表中的全部field hkeys <key> # 查看某個(gè)key哈希表中的全部value hvals <key> # 查看某個(gè)key哈希表中全部的key和value hgetall <key> # 為某個(gè)key的哈希表中的某個(gè)field鍵的值加上響應(yīng)的增量 hincrby <key> <field> <increment> # 某個(gè)key哈希表中的field鍵復(fù)制為value,當(dāng)且僅當(dāng)key不存在的時(shí)候成功 hsetnx <key> <field> <value> # 刪除key中某個(gè)field hdel <key> <field>
九、redis 有序集合(Zset)相關(guān)命令
# 添加以一個(gè)過(guò)著多個(gè)元素,score為評(píng)分,集合按照從低到高及進(jìn)行排序,評(píng)分可以重復(fù) zadd <key> <score1> <value1> <score2> <value2> # 獲取有序集合中成員的數(shù)量 zcard <key> # 統(tǒng)計(jì)score評(píng)分在某個(gè)范圍內(nèi)的數(shù)據(jù)的數(shù)量 zcount <key> <min> <max> # 查一定范圍的元素,end為-1時(shí),查詢所有,按照分?jǐn)?shù)從小到大排序,withscores加上他,連著評(píng)分一起查出 zrange <key> <start> <end> [LIMIT offset count] [withscores] # 查一定范圍的元素,end為-1時(shí),查詢所有,按照分?jǐn)?shù)從大到小排序,withscores加上他,連著評(píng)分一起查出 zrevrange <key> <start> <end> [LIMIT offset count] [withscores] # 查詢score評(píng)分在某個(gè)范圍內(nèi)的數(shù)據(jù),從小到大排序,withscores加上他,連著評(píng)分一起查出 zrangebyscore <key> <min> <max> [withscores] # 查詢score評(píng)分在某個(gè)范圍內(nèi)的數(shù)據(jù),從大到小排序,withscores加上他,連著評(píng)分一起查出 zrevrangebyscore <key> <max> <min> [withscores] # 為元素的score加上指定的增量 zincrby <key> <increment> <value> # 刪除數(shù)據(jù) zrem <key> <value1> <value2> # 返回集合中value的排名,排序從0開始 zrank <key> <value>
到此這篇關(guān)于Redis常用命令集的使用的文章就介紹到這了,更多相關(guān)Redis 命令集內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
redis中使用java腳本實(shí)現(xiàn)分布式鎖
這篇文章主要介紹了redis中使用java腳本實(shí)現(xiàn)分布式鎖,本文同時(shí)講解了java腳本和lua腳本實(shí)現(xiàn)分布式鎖,需要的朋友可以參考下2015-01-01利用Redis實(shí)現(xiàn)SQL伸縮的方法簡(jiǎn)介
這篇文章主要介紹了利用Redis實(shí)現(xiàn)SQL伸縮的方法,包括講到了鎖和時(shí)間序列等方面來(lái)提升傳統(tǒng)數(shù)據(jù)庫(kù)的性能,需要的朋友可以參考下2015-06-06CentOS系統(tǒng)中Redis數(shù)據(jù)庫(kù)的安裝配置指南
Redis是一個(gè)基于主存存儲(chǔ)的數(shù)據(jù)庫(kù),性能很強(qiáng),這里我們就來(lái)看一下CentOS系統(tǒng)中Redis數(shù)據(jù)庫(kù)的安裝配置指南,包括將Redis作為系統(tǒng)服務(wù)運(yùn)行的技巧等,需要的朋友可以參考下2016-06-06基于Redis實(shí)現(xiàn)延時(shí)隊(duì)列的優(yōu)化方案小結(jié)
本文主要介紹了基于Redis實(shí)現(xiàn)延時(shí)隊(duì)列的優(yōu)化方案小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Redis實(shí)現(xiàn)分布式事務(wù)的示例
Redis雖不支持傳統(tǒng)SQL數(shù)據(jù)庫(kù)ACID特性的事務(wù),但提供了事務(wù)特性,允許多命令捆綁執(zhí)行,通過(guò)命令MULTI、EXEC、DISCARD、WATCH實(shí)現(xiàn),感興趣的可以了解一下2024-10-10redis?lua腳本解決高并發(fā)下秒殺場(chǎng)景
這篇文章主要為大家介紹了redis?lua腳本解決高并發(fā)下秒殺場(chǎng)景,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10詳解Redis在SpringBoot工程中的綜合應(yīng)用
這篇文章主要介紹了Redis在SpringBoot工程中的綜合應(yīng)用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10