redis 字符串(string)【需要掌握】
特點
- 一個鍵能存儲512MB數據
- string類型是二進制安全的,可以存儲任何數據,比如jpg圖片或序列化對象
redis字符串數據類型的相關命令用於管理redis字符串值,基本語法如下:
語法
-
set key values 設置指定 key 的值
127.0.0.1:6379> set name panlifu OK 127.0.0.1:6379> get name "panlifu" -
get key 獲取指定key的值
127.0.0.1:6379> set name panlifu OK 127.0.0.1:6379> get name "panlifu" -
getrange key start end 返回key中字符串的子字符,類似python中的切片功能,不同在於redis顧頭顧尾
127.0.0.1:6379> set name panlifu OK 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> GETRANGE name 0 3 "panl" -
getset key value 將給定key的值設為value,並返回key的舊值(old value)
127.0.0.1:6379> set name panlifu OK 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> GETRANGE name 0 3 "panl" 127.0.0.1:6379> GETSET name lt "panlifu" 127.0.0.1:6379> get name "lt" -
getbit key offset 對key所儲存的字符串值,獲取指定偏移量上的位(bit) ?
-
setbit key offset value 對key所儲存的字符串值,設置或清除指定偏移量上的位(bit) ?
-
mget key1 [key2...]獲取所有(一個或多個)給定key的值
127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> set age 24 OK 127.0.0.1:6379> get age "24" 127.0.0.1:6379> get age name (error) ERR wrong number of arguments for 'get' command 127.0.0.1:6379> mget name age 1) "panlifu" 2) "24" 127.0.0.1:6379> -
setex key secondes value 將值value關聯到key,並將key的過期時間設置為secondes(以秒為單位)
# 第一種方法 127.0.0.1:6379> setex name 5 "panlifu" OK 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> get name (nil) # 第二種方法 127.0.0.1:6379> set name panlifu ex 6 OK 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> get name (nil) -
setnx key value 只有在key不存在時設置key的值
127.0.0.1:6379> get name (nil) 127.0.0.1:6379> setnx name panlifu (integer) 1 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> setnx name lt (integer) 0 127.0.0.1:6379> get name "panlifu" -
setrange key offset value 用value參數覆寫給定key所存儲的字符串值,從偏移量offset開始
127.0.0.1:6379> set name "hello world" OK 127.0.0.1:6379> get name "hello world" 127.0.0.1:6379> SETRANGE name 6 "redis" (integer) 11 127.0.0.1:6379> get name "hello redis" -
mset key value [key value] 同時設置一個或者多個key -value對
127.0.0.1:6379> mset name panlifu age 18 OK 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> get age "18" -
msetnx key value [key value] 同時設置一個或者多個key-value對,當且僅當所有給定key都不存在
127.0.0.1:6379> msetnx sex boy height 120 (integer) 1 127.0.0.1:6379> get sex "boy" 127.0.0.1:6379> get height "120" 127.0.0.1:6379> msetnx name lt age 17 (integer) 0 127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> get age "18"總結:key前面有m一般都指 可以設置多個 鍵值對。 鍵后面帶nx 一般表示 只有當key不存在時,才能設置該key。
-
strlen key 返回 key 所儲存的字符串值的長度
127.0.0.1:6379> get name "panlifu" 127.0.0.1:6379> strlen name (integer) 7 -
psetex key milliseconds value 這個命令和 SETEX 命令相似,但它以毫秒為單位設置 key 的生存時間,而不是像 SETEX 命令那樣,以秒為單位
127.0.0.1:6379> psetex name 1000 hehe OK 127.0.0.1:6379> get name "hehe" 127.0.0.1:6379> get name (nil)總結:當鍵以ex結尾時,一般表示設置 key的過期時間,單位為秒。當鍵前面有p且后面有ex時,也表示設置key過期時間,單位為毫秒
-
incr key 將key中存儲的數字值增1
127.0.0.1:6379> set age 19 OK 127.0.0.1:6379> get age "19" 127.0.0.1:6379> incr age (integer) 20 127.0.0.1:6379> incr age (integer) 21 127.0.0.1:6379> get age "21" 127.0.0.1:6379> set age "19" OK 127.0.0.1:6379> get age "19" 127.0.0.1:6379> incr age (integer) 20 127.0.0.1:6379> incr age (integer) 21 127.0.0.1:6379> get age "21" 127.0.0.1:6379> incr age (integer) 22 127.0.0.1:6379> get age "22" 127.0.0.1:6379> type age string總結:string數據類型中的數據,value的數據類型都是string類型。只要string全為數字,即可使用incr鍵
-
incrby key increment 將key所儲存的值加上給定的浮點增量值
127.0.0.1:6379> get age "27" 127.0.0.1:6379> incrby age 3 (integer) 30 127.0.0.1:6379> get age "30" -
incrbyfloat key increment 將 key 所儲存的值加上給定的浮點增量值(increment) 。
127.0.0.1:6379> get age "30" 127.0.0.1:6379> incrbyfloat age 1.5 "31.5" 127.0.0.1:6379> get age "31.5" -
decrby key decrement key 所儲存的值減去給定的減量值(decrement)
127.0.0.1:6379> incrbyfloat age -1.5 "30" 127.0.0.1:6379> decrby age 5 (integer) 25 127.0.0.1:6379> get age "25" -
decr key 將 key 中儲存的數字值減一。
-
append key value 果 key 已經存在並且是一個字符串, APPEND 命令將指定的 value 追加到該 key 原來值(value)的末尾。
127.0.0.1:6379> get age "25" 127.0.0.1:6379> append age hehe (integer) 6 127.0.0.1:6379> get age "25hehe"
