Redis的鍵都是字符串類型结胀,而其他幾種數(shù)據(jù)結(jié)構(gòu)都是在字符串類型基礎(chǔ)上構(gòu)建的沫屡。
所謂的字符串類型的值拌牲,實(shí)際上可以是字符串(簡(jiǎn)單的字符串,復(fù)雜的字符串--json歌粥、xml等)塌忽,數(shù)字(整數(shù),浮點(diǎn)數(shù))失驶,二進(jìn)制(圖片土居、音頻,視頻)嬉探,但是其值最大不能超過(guò)512MB
常用命令:
set key value [ex seconds] [px milliseconds] [nx|xx]
set 命令的幾個(gè)選項(xiàng):
--ex seconds為鍵設(shè)置秒級(jí)過(guò)期時(shí)間?? ===等同命令===?? setex? key seconds value
--px millionseconds為鍵設(shè)置毫秒級(jí)過(guò)期時(shí)間
--nx鍵必須不存在擦耀,才可以設(shè)置成功,用于添加??? ===等同命令=== setnx key value可以作為分布式鎖的一種實(shí)現(xiàn)(Redis官方給出使用setnx實(shí)現(xiàn)分布式鎖的方法 https://redis.io/topics/distlock)
--xx 鍵必須存在涩堤,才可以設(shè)置成功埂奈,用于更新
批量操作 ---優(yōu)選,減少網(wǎng)絡(luò)消耗
mset key1 value1 key2 value2 key3 value3
mget key1 key2 key3
incr key用于對(duì)值做自增操定躏,返回結(jié)果三種情況
---值不是正數(shù),返回錯(cuò)誤
---值是正數(shù)芹敌,返回自增后的結(jié)果
---鍵不存在痊远,按照值為0自增,返回結(jié)果為1
類似命令
---自減? decr key
---自增指定數(shù)字 incrby key num
---自減指定數(shù)字 decrby key num
---自增浮點(diǎn)數(shù) incrfloat key num
--------------------------------------不常用命令
--向字符串val末尾追加值 append key value
--獲取字符串val長(zhǎng)度 strlen key
--設(shè)置并返回key的原value值? getset key value
--設(shè)置指定位置的字符? setrange key index value
--獲取部分字符串? getrange key startIndex endIndex
----------------------------------------內(nèi)部編碼
字符串類型內(nèi)部編碼有3種
---int:8個(gè)字節(jié)的長(zhǎng)整型
---embstr:小于等于39個(gè)字節(jié)的字符串
---raw:大于39字節(jié)的字符串
Redis會(huì)根據(jù)當(dāng)前值類型和長(zhǎng)度決定使用哪種內(nèi)部編碼實(shí)現(xiàn)
object encoding key
--------------------運(yùn)用
---計(jì)數(shù)
---共享session氏捞,將登陸信息保存在Redis里
---限速(通過(guò)鍵過(guò)期碧聪,計(jì)數(shù),存在)保證液茎,一段時(shí)間內(nèi)的訪問(wèn)次數(shù)