Redis常用命令

禁用Linux的防火墻:Linux(CentOS7)里執(zhí)行命令

  systemctl stop firewalld.service
  redis.conf中注釋掉bind 127.0.0.1 ,然后 protect-mode no。

redis啟動(dòng)

啟動(dòng)

1、備份redis.conf:拷貝一份redis.conf到其他目錄

2、修改redis.conf文件將里面的daemonize no 改成 yes,讓服務(wù)在后臺(tái)啟動(dòng)

3、啟動(dòng)命令:執(zhí)行 redis-server /myredis/redis.conf

4、用客戶端訪問: Redis-cli

多個(gè)端口可以 Redis-cli –p 6379

5、測(cè)試驗(yàn)證: ping

redis關(guān)閉

單實(shí)例關(guān)閉:

  Redis-cli shutdown

也可以進(jìn)入終端后再關(guān)閉 shutdown

多實(shí)例關(guān)閉,指定端口關(guān)閉:

  Redis-cli -p 6379 shutdown

Redis五大數(shù)據(jù)類型–key

命令 描述
keys * 查詢當(dāng)前庫的所有鍵
exists 判斷某個(gè)鍵是否存在
type 查看鍵的類型
del 刪除某個(gè)鍵
expire 為鍵值設(shè)置過期時(shí)間,單位秒。
ttl 查看還有多少秒過期,-1表示永不過期 (-2表示已過期)
dbsize 查看當(dāng)前數(shù)據(jù)庫的key的數(shù)量
Flushdb 清空當(dāng)前庫(慎用?。?/td>
Flushall 通殺全部庫(刪庫跑路?。?!忘了這個(gè)命令吧)

Redis五大數(shù)據(jù)類型–String

String是Redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個(gè)key對(duì)應(yīng)一個(gè)value。
String類型是二進(jìn)制安全的。意味著Redis的string可以包含任何數(shù)據(jù)。比如jpg圖片或者序列化的對(duì)象 。
String類型是Redis最基本的數(shù)據(jù)類型,一個(gè)Redis中字符串value最多可以是512M

命令 描述
get 查詢對(duì)應(yīng)鍵值
set 添加鍵值對(duì)
append 將給定的 追加到原值的末尾
strlen 獲得值的長度
setnx 只有在 key 不存在時(shí)設(shè)置 key 的值
incr 將 key 中儲(chǔ)存的數(shù)字值增1;只能對(duì)數(shù)字值操作,如果為空,新增值為1
decr 將 key 中儲(chǔ)存的數(shù)字值減1;只能對(duì)數(shù)字值操作,如果為空,新增值為-1
incrby / decrby <步長> 將 key 中儲(chǔ)存的數(shù)字值增減。自定義步長。
mset … 同時(shí)設(shè)置一個(gè)或多個(gè) key-value對(duì)
mget … 同時(shí)獲取一個(gè)或多個(gè) value
msetnx … 同時(shí)設(shè)置一個(gè)或多個(gè) key-value 對(duì),當(dāng)且僅當(dāng)所有給定 key 都不存在。
getrange <起始位置> <結(jié)束位置> 獲得值的范圍,類似java中的substring
setrange <起始位置> 用 覆寫 所儲(chǔ)存的字符串值, 從<起始位置>開始。
setex <過期時(shí)間> 設(shè)置鍵值的同時(shí),設(shè)置過期時(shí)間,單位秒。
getset 以新?lián)Q舊,設(shè)置了新值同時(shí)獲得舊值。

Redis五大數(shù)據(jù)類型–list

List

單鍵多值

Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個(gè)元素導(dǎo)列表的頭部(左邊)或者尾部(右邊)。

它的底層實(shí)際是個(gè)雙向鏈表,對(duì)兩端的操作性能很高,通過索引下標(biāo)的操作中間的節(jié)點(diǎn)性能會(huì)較差。

命令 描述
lpush/rpush … 從左邊/右邊插入一個(gè)或多個(gè)值。
lpop/rpop 從左邊/右邊吐出一個(gè)值。;值在鍵在,值光鍵亡。
rpoplpush 從列表右邊吐出一個(gè)值,插到列表左邊。
lrange 按照索引下標(biāo)獲得元素(從左到右)
lindex 按照索引下標(biāo)獲得元素(從左到右)
llen 獲得列表長度
linsert before 在的后面插入 插入值
lrem 從左邊刪除n個(gè)value(從左到右)

Redis五大數(shù)據(jù)類型–set

Redis set對(duì)外提供的功能與list類似是一個(gè)列表的功能,特殊之處在于set是可以自動(dòng)排重的,當(dāng)你需要存儲(chǔ)一個(gè)列表數(shù)據(jù),又不希望出現(xiàn)重復(fù)數(shù)據(jù)時(shí),set是一個(gè)很好的選擇,并且set提供了判斷某個(gè)成員是否在一個(gè)set集合內(nèi)的重要接口,這個(gè)也是list所不能提供的。

Redis的Set是string類型的無序集合。它底層其實(shí)是一個(gè)value為null的hash表,所以添加,刪除,查找的復(fù)雜度都是O(1)。

命令 描述
sadd … 將一個(gè)或多個(gè) member 元素加入到集合 key 當(dāng)中,已經(jīng)存在于集合的 member 元素將被忽略。
smembers 取出該集合的所有值。
sismember 判斷集合是否為含有該值,有返回1,沒有返回0
scard 返回該集合的元素個(gè)數(shù)。
srem … 刪除集合中的某個(gè)元素。
spop 隨機(jī)從該集合中吐出一個(gè)值。
srandmember 隨機(jī)從該集合中取出n個(gè)值。不會(huì)從集合中刪除
sinter 返回兩個(gè)集合的交集元素。
sunion 返回兩個(gè)集合的并集元素。
sdiff 返回兩個(gè)集合的差集元素。

Redis五大數(shù)據(jù)類型–hash

Redis hash 是一個(gè)鍵值對(duì)集合。

Redis hash是一個(gè)string類型的field和value的映射表,hash特別適合用于存儲(chǔ)對(duì)象。

類似Java里面的Map

命令 描述
hset 給集合中的 鍵賦值
hget 從集合 取出 value
hmset … 批量設(shè)置hash的值
hexists key 查看哈希表 key 中,給定域 field 是否存在。
hkeys 列出該hash集合的所有field
hvals 列出該hash集合的所有value
hincrby 為哈希表 key 中的域 field 的值加上增量 increment
hsetnx 將哈希表 key 中的域 field 的值設(shè)置為 value ,當(dāng)且僅當(dāng)域 field 不存在 .

Redis五大數(shù)據(jù)類型–zset (sorted set)

Redis有序集合zset與普通集合set非常相似,是一個(gè)沒有重復(fù)元素的字符串集合。不同之處是有序集合的每個(gè)成員都關(guān)聯(lián)了一個(gè)評(píng)分(score) ,這個(gè)評(píng)分(score)被用來按照從最低分到最高分的方式排序集合中的成員。集合的成員是唯一的,但是評(píng)分可以是重復(fù)了 。

因?yàn)樵厥怯行虻? 所以你也可以很快的根據(jù)評(píng)分(score)或者次序(position)來獲取一個(gè)范圍的元素。訪問有序集合的中間元素也是非??斓?因此你能夠使用有序集合作為一個(gè)沒有重復(fù)成員的智能列表。

命令 描述
zadd … 將一個(gè)或多個(gè) member 元素及其 score 值加入到有序集 key 當(dāng)中。
zrange [WITHSCORES] 返回有序集 key 中,下標(biāo)在 之間的元素;帶WITHSCORES,可以讓分?jǐn)?shù)一起和值返回到結(jié)果集。
zrangebyscore key min max [withscores] [limit offset count] 返回有序集 key 中,所有 score 值介于 min 和 max 之間(包括等于 min 或 max )的成員。有序集成員按 score 值遞增(從小到大)次序排列。
zrevrangebyscore key max min [withscores] [limit offset count] 同上,改為從大到小排列。
zincrby 為元素的score加上增量
zrem 刪除該集合下,指定值的元素
zcount 統(tǒng)計(jì)該集合,分?jǐn)?shù)區(qū)間內(nèi)的元素個(gè)數(shù)
zrank 返回該值在集合中的排名,從0開始。

Redis事務(wù)–三特性

單獨(dú)的隔離操作

事務(wù)中的所有命令都會(huì)序列化、按順序地執(zhí)行。事務(wù)在執(zhí)行的過程中,不會(huì)被其他客戶端發(fā)送來的命令請(qǐng)求所打斷。

沒有隔離級(jí)別的概念

隊(duì)列中的命令沒有提交之前都不會(huì)實(shí)際的被執(zhí)行,因?yàn)槭聞?wù)提交前任何指令都不會(huì)被實(shí)際執(zhí)行,也就不存在“事務(wù)內(nèi)的查詢要看到事務(wù)里的更新,在事務(wù)外查詢不能看到”這個(gè)讓人萬分頭痛的問題

不保證原子性

Redis同一個(gè)事務(wù)中如果有一條命令執(zhí)行失敗,其后的命令仍然會(huì)被執(zhí)行,沒有回滾

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容