NoSQL之Redis對string資料型別的操作

2021-06-19 11:39:02 字數 4057 閱讀 4198

一、簡介

string是最簡單的資料型別,乙個key對應乙個value,string型別是二進位制安裝的。redis的string可以包含任何資料,比如jpg或者序列化的物件。

1.set key value:設定key對應的值為string型別的value,返回值ok

127.0.0.1:6379> set mykey 'this is a sting'

ok

這樣就想當於設定了mykey='this is a string'的鍵值對。set是可以重新設定的,也就是說我如果再執行set mykey 'this is another string'那麼後面的值會覆蓋前面的值。

2.get key:獲取key鍵對應的string value:

127.0.0.1:6379> get mykey

"this is a string"

這樣就獲取了剛才我們設定的mykey對應的value 值為'this is a string'

3.setnx key value:只對不存在的key設定對應的value值,如果key已經存在那麼設定不成功返回integer 0,nx是not exist的意思。如果key不存在那麼設定成功返回integer 1

127.0.0.1:6379> setnx mykey 'this is mykey value'

(integer) 0

說明設定不成功,這個時候我們再用get mykey

127.0.0.1:6379> get mykey

"this is a string"

可以看到還是之前的值,並沒有變化。那麼我們用setnx mykey1 『this is mykey1 value'看看是什麼情況,mykey1是之前沒有設定過的

127.0.0.1:6379> setnx mykey1 'this is mykey1 string value'

(integer) 1

127.0.0.1:6379> get mykey1

"this is mykey1 string value"

很明顯mykey1設定成功了。

4.setex key value:設定key對應的值為string型別的value,並指定此鍵值對應的有效期。

127.0.0.1:6379> setex boyname 10 joker

ok

上面語句的意思是我設定了乙個鍵值為boyname的value為joker,並且10後過期,那麼我get boyname回獲取到10秒,但是10秒之後就會返回(nil)這個代表redis裡的空字串。

set boyname joker如果沒有設定有效期,代表永久有效。

5.setrange key value start childstring:設定指定key的value的子字串。從start開始,設定長度為length

127.0.0.1:6379> set email [email protected]

ok127.0.0.1:6379> get email

"[email protected]"

127.0.0.1:6379> setrange email 5 gmail.com

(integer) 14

127.0.0.1:6379> get email

"[email protected]"

上面的命令首先設定email為[email protected]然後把163.com替換為 gmail.com

6.mset key1 value1 key2 value2 key3 value3 .........:一次設定多個key值,成功返回ok表示所有的值都設定了,失敗返回0表示沒有任何值被設定。

127.0.0.1:6379> mset key1 value1 key2 value2 key3 value3

ok

127.0.0.1:6379> get key1

"value1"

同樣用mset再次設定kye1 key2 key3的值,會覆蓋前面的值。

127.0.0.1:6379> mset key1 newvalue1 key2 newvalue2 key3 newvalue3

ok

127.0.0.1:6379> get key1

"newvalue1"

7.msetnx key1 value1 key2 value2 key3 value3 ......:一次設定多個key的值,成功返回ok表示所有的值都設定了,失敗返回0表示沒有任何值被設定,但是不會覆蓋已經存在的可以值

127.0.0.1:6379> msetnx key1 value1 key2 value2 key4 value4

(integer) 0

因為key1 key2之前被設定過,所以失敗

127.0.0.1:6379> msetnx key4 value4 key5 value5

(integer) 1

key4 key5都沒有設定過,所以成功

8.getset key value:設定乙個新值,並且返回舊值。

127.0.0.1:6379> get key4

"value4"

127.0.0.1:6379> getset key4 newvalue4

"value4"

127.0.0.1:6379> get key4

"newvalue4"

上面的命令首先獲取key4原來的值為value4,用getset設定key4新值為newvalue4,同時返回了舊值value4。用完getset命令之後再用get獲取key4為新值newvalue4.

9.getrange key start end:獲取key的子字串,從start開始到end結束

127.0.0.1:6379> getrange key4 1 3

"ewv"

10.mget key1 key2 key3...:批量獲取

127.0.0.1:6379> mget key1 key2 key3

1) "test1"

2) "test2"

3) "test3"

11.incr key : 自增

127.0.0.1:6379> set num 2

ok127.0.0.1:6379> incr num

(integer) 3

127.0.0.1:6379> get num

"3"

12.decr key : 自減

127.0.0.1:6379> decr num

(integer) 2

127.0.0.1:6379> get num

"2"

13 .incrby key count:以指定的count數進行自增

127.0.0.1:6379> incrby num 10

(integer) 12

127.0.0.1:6379> get num

"12"

14.decrby key count:以指定的count數進行自減

127.0.0.1:6379> decrby num 2

(integer) 10

127.0.0.1:6379> get num

"10"

15.strlen key:獲取key對應value字串的長度

127.0.0.1:6379> strlen key1

(integer) 10

Nosql之redis學習(四)

set是集合,他是string型別的無序集合。set是通過hash table實現的,新增,查詢和刪除的複雜度都是o 1 對集合我們可以取並集,交集,差集。通過這寫操作我們可以實現sns中的好友推薦和blog的tag功能。方法 sadd 向名稱為key的set中新增元素。方法 smembers 返回...

NoSQL資料庫之 Redis

redis是基於記憶體的nosql資料庫。前身是memcached,但是memcached不支援持久化,沒有豐富的資料型別。redis存放的資料是key values鍵值對。1 解壓 tar zxvf redis 3.0.5.tar.gz 預編譯,需要gcc環境。apt get install gc...

企業級架構NoSQL之Redis

今天給大家分享一下redis的安裝與配置 redis可以原始碼安裝,也可yum安裝,但是yum安裝定製性不強,今天分享的是原始碼安裝。shell tar xvf redis 5.0.5.tar.gz shell cd redis 5.0.5 shell make prefix usr local r...