一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Redis - Redis字符串類型的常用命令小結

Redis字符串類型的常用命令小結

2019-10-30 19:13Joan Redis

這篇文章給大家整理了在操作Redis字符串類型中的常用命令,文章總結的很全面,對大家學習Redis具有一定的參考借鑒價值,下面來一起看看吧。

Redis字符串類型

字符串類型是Redis中最為基礎的數據存儲類型,它在Redis中是二進制安全的,這便意味著該類型可以接受任何格式的數據,如JPEG圖像數據或Json對象描述信息等。在Redis中字符串類型的Value最多可以容納的數據長度是512M。

一、最簡單的命令

1、獲得符合規則的鍵名列表

?
1
keys *

這里的*號,是指列出所有的鍵,同時*號也可以替換成其他支持glob風格通配符格式,具體規則如下:

     ?:匹配一個字符

     *:匹配任意個(包括0個)字符

     []:匹配括號間多大任一個字符,可以使用“-”表示范圍,如[a-z]

     \x:匹配字符x,用于轉義,如需匹配問號,需要\?才能匹配

這里說明一下,redis命令是不區分大小寫的,還有就是keys命令是需要遍歷Redis中所有的鍵的,當鍵很多時,很耗費性能的。所以在生產環境中要盡可能的不用。

例:

?
1
2
3
4
5
6
7
8
9
10
11
12
redis 127.0.0.1:6379> set name "joan"
OK
redis 127.0.0.1:6379> get name
"joan"
redis 127.0.0.1:6379> set aaa 1
OK
redis 127.0.0.1:6379> set bbb 2
OK
redis 127.0.0.1:6379> keys *
1) "aaa"
2) "name"
3) "bbb"

2、判斷鍵是否存在

?
1
exists foo

如果存在返回證書類型1,否則返回0

例:

?
1
2
3
4
redis 127.0.0.1:6379> exists name
(integer) 1
redis 127.0.0.1:6379> exists n
(integer) 0

3、刪除鍵

?
1
del foo

返回的是刪除的鍵的個數,這里說明也可以一次刪除多個鍵,只需空格再加鍵就可以了。例如:

?
1
del foo bar

如果刪除一個鍵,這個鍵已經不存在了就會返回0 。

例:

?
1
2
3
4
5
6
7
8
redis 127.0.0.1:6379> keys *
1) "aaa"
2) "name"
3) "bbb"
redis 127.0.0.1:6379> del aaa bbb
(integer) 2
redis 127.0.0.1:6379> del aaa
(integer) 0

4、獲得鍵值的數據類型

?
1
type foo

這里在重復一下上次說過的,redis的數據類型有:string(字符串類型)、hash(散列類型)、list(列表類型)、set(集合類型)、zset(有序集合類型)。

下面開始詳細介紹每種數據類型的命令。

二、字符串類型

字符串類型是Redis中最基本的數據類型,他能存儲任意形式的字符串,包括二進制數據。字符串類型也是其他四種數據類型的基礎。也就是說,其他四種數據類型都是由字符串類型所組成的。

常用命令如下:

     set key value   #賦值,返回值是OK

     get key            #取值,返回值是對應鍵的值

     incr key          #遞增數字,雖然是字符串類型,但如果可以是整型的話,也是可以使用此命令遞增的,返回值是遞增后的值,遞增操作后,再次獲取該key值,值為新值。

例:

?
1
2
3
4
5
6
redis 127.0.0.1:6379> get age
"32"
redis 127.0.0.1:6379> incr age
(integer) 33
redis 127.0.0.1:6379> get age
"33"

incrby key number      #這個命令和上一個類似,只不過可以通過number指定增長的數量,返回值同樣是增長后的值

例:

?
1
2
3
4
redis 127.0.0.1:6379> incrby age 5
(integer) 38
redis 127.0.0.1:6379> get age
"38"

decr key        #遞減數字,類似遞增,這里不做過多解釋了

decrby key number     #類似于incrby,這里大家應該可以猜到,decrby key number和incrby key -number是一個意思

incrbyfloat key floatnumber     #增加指定浮點數,這個是增加一個雙精度的浮點數,位數多了就會不準

append key value      #向尾部追加值,如 append foo ” value”,這個時候用引號是為了標識有空格,返回值為值的總長度

例:

?
1
2
3
4
redis 127.0.0.1:6379> append name 'hello'
(integer) 9
redis 127.0.0.1:6379> get name
"joanhello"

strlen key        #獲取字符串值總長度,返回值就是長度,如果key不存在,則返回0

mget key [key ...]        #同時獲得多個鍵值,鍵值的列表

例:

?
1
2
3
4
redis 127.0.0.1:6379> mget name age float
1) "joanhello"
2) "38"
3) "33.33"

mset key value [key value ...]     #同時設置多個鍵值,成功返回OK

?
1
2
3
4
5
6
redis 127.0.0.1:6379> mset name "joan" age 9 float 33.33
OK
redis 127.0.0.1:6379> mget name age float
1) "joan"
2) "9"
3) "33.33"

setbit/getbit    #這個是位操作,具體示例如下:

?
1
2
redis set foo bar
OK

這時賦值給foo值為bar,對應的ASCII碼為98、97、114,轉換為八位二進制為:

01100010、01100001、01110010

進行如下操作:

?
1
2
3
4
5
6
7
8
redis> getbit foo 0
0
redis> getbit foo 1
1
redis> getbit foo 2
1
redis> getbit foo 3
0

所以getbit就是獲取key對應的字符串類型鍵值指定位置的二進制的值(0或1),索引從0開始。

如果獲取超出了最大值,也返回0.

而相反,setbit就是來設置key對應的指定位置的二進制值的。返回值是該位置的舊值。例如

?
1
2
redis> setbit foo 6 0
(integer) 1

如果要設置的值超過了最大長度,則命令會將最大長度之后到最大長度之間未設置的值統一設置為0,同理,設置一個不存在的鍵值,也會自動把它前面所有未設置的位置二進制設為0。如:

?
1
2
redis> setbit qqq 8 1
(integer) 0

則會把qqq對應的值變為00000001 。

bitcount key 命令可以返回字符串類型鍵值中二進制值為1的個數。

同時他的參數還可以設置查詢的范圍,

bitcount foo 0 1   #意思是只查詢ba兩個字節中包含二進制值為1的個數。

最后一個bitop命令,可以進行位操作。

bitop OR res foo1 foo2    #意思是把foo1和foo2做OR運算,結果存入res中。bitop支持的位操作有ND、OR、XOR、NOT四個。

字符串的操作命令就這些了。位的命令還是很有用的,比如我們在存儲性別的時候可以把性別的類型設置為一個比特位,這樣超級省空間的。

總結

以上就是這篇文章的全部內容了,希望能對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

延伸 · 閱讀

精彩推薦
  • RedisRedis的配置、啟動、操作和關閉方法

    Redis的配置、啟動、操作和關閉方法

    今天小編就為大家分享一篇Redis的配置、啟動、操作和關閉方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    大道化簡5312019-11-14
  • RedisRedis全量復制與部分復制示例詳解

    Redis全量復制與部分復制示例詳解

    這篇文章主要給大家介紹了關于Redis全量復制與部分復制的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis爬蟲具有一定的參考學習...

    豆子先生5052019-11-27
  • RedisRedis 事務知識點相關總結

    Redis 事務知識點相關總結

    這篇文章主要介紹了Redis 事務相關總結,幫助大家更好的理解和學習使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • Redis詳解Redis復制原理

    詳解Redis復制原理

    與大多數db一樣,Redis也提供了復制機制,以滿足故障恢復和負載均衡等需求。復制也是Redis高可用的基礎,哨兵和集群都是建立在復制基礎上實現高可用的...

    李留廣10222021-08-09
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    xiaojin21cen10152021-07-27
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    這篇文章主要給大家介紹了關于redis中如何使用lua腳本讓你的靈活性提高5個逼格的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具...

    一線碼農5812019-11-18
  • RedisRedis如何實現數據庫讀寫分離詳解

    Redis如何實現數據庫讀寫分離詳解

    Redis的主從架構,能幫助我們實現讀多,寫少的情況,下面這篇文章主要給大家介紹了關于Redis如何實現數據庫讀寫分離的相關資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • Redisredis實現排行榜功能

    redis實現排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來實現排行榜功能,本文就來簡單的介紹一下如何使用,具有一定的參考價值,感興趣的小伙伴們...

    乘月歸5022021-08-05
主站蜘蛛池模板: 小夫妻天天恶战 | 四虎永久网址影院 | 国产福利在线免费观看 | 久久人妻少妇嫩草AV无码 | 九九国产在线观看 | 91香蕉国产在线观看免费永久 | 日韩精品高清自在线 | 久久综合久久伊人 | 亚洲AV国产精品无码精 | 91李宗精品72集在线观看 | 国产高清好大好夹受不了了 | 成人精品一区久久久久 | 日韩精品视频在线观看免费 | 日本护士xxxx视频 | www日本高清视频 | 国产精品aⅴ | 欧美专区视频 | 男人天堂网在线 | 精品欧美一区二区在线观看欧美熟 | 日韩成人一区ftp在线播放 | 亚洲精品视频在线 | 久久99热狠狠色AV蜜臀 | 久久综合香蕉久久久久久久 | 嘉嘉的丝袜美腿白丝 | 97影院网| 爽好舒服使劲添高h视频 | blacked最大的吊 | 国产三级自拍 | 久久不卡免费视频 | 日本网络视频www色高清免费 | 97青草香蕉依人在线播放 | 国产伦精品一区二区 | 日韩精品一区二区三区老鸭窝 | 日本嫩小xxxxhd | tube69xxxxhd日本| 美女天天操| 西西人体大胆啪啪私拍色约约 | 91精品免费观看老司机 | 久久视频这里只精品99热在线观看 | 成年无限观看onlyfans | 91麻豆精品国产 |