三、Redis字符串类型基本操作记录(1)
字符串类型是Redis中最基本的数据类型,String可以存储任何形式的字符串,包括二进制数据。
一个String类型键允许存储的数据最大容量是512MB。
set 设置指定key的值
语法:set key value
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(198, 120, 221) !important">set</span> name zhaoliu</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(198, 120, 221) !important">set</span> name <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'li si'</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span>
1)set设置给定key的值。如果key已存储其它值,则覆盖旧值;
2)如果有空格等其它字符,则使用引号包含。
get 获取指定key的值
语法:get key
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> name</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"li si"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 获取不存在的key</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> name1</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(nil)</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 获取不是String类型的key</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> lpush a <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'111'</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">3</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> a</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(error) WRONGTYPE Operation against a key holding the wrong kind of value</span>
获取指定key的值,如果key不存在,则返回nil,如果key存储的值不是String类型,则返回错误
mset 设置一个或多个key-value对
语法:mset key1 value1 key2 value2 ...
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> mset keya valuea keyb valueb</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 设置已经存在的key</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> mset keya <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'i ma a'</span> keyb <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'i am b'</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span>
如果key存在,则新值覆盖旧值
mget 获取一个或多个给定key的值
语法:mget key1 key2 ...
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 获取一个key的值</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> mget keya</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span>) <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"i ma a"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 获取多个key的值</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> mget keya keyb</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span>) <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"i ma a"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">2</span>) <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"i am b"</span></span>
msetnx 设置一个或多个key-value对,当且仅当所有key不存在
语法:msetnx key1 value1 key2 value2 ...
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> msetnx a1 <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span> a2 <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">20</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 存在key,设置不成功</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> msetnx num <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span> age <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span></span>
getset 设置指定key的值,并返回旧值
语法:getset key value
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> getset name <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'wang wu'</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"li si"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> name</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"wang wu"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key不存在,返回nil</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> getset aa <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'i am aa'</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(nil)</span>
1)当key不存在时,返回nil
2)当key不是字符串时,报错
setrange 为指定的key进行指定范围的value值,从offset处开始重写
语法:setrange key offset value
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 将指定偏移量开始处的值进行重写</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> name</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"wang wu"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> setrange name <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">5</span> hello</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> name</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"wang hello"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> </span>
getrange 获取指定在key中指定范围(偏移量)的字符串
语法:getrange key start end
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 获取所有指定范围的内容,如同get</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> keya</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"i ma a hello"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> getrange keya <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">-1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"i ma a hello"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 获取keya中hello</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> getrange keya <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">7</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">-1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"hello"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> getrange keya <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">7</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">12</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"hello"</span></span>
append 为指定的key追加值
语法:append key value
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 已存在的key</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> append keya <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">' hello'</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">12</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> keya</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"i ma a hello"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 不存在的key</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> append name <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'li si'</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">5</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> name</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"li si"</span></span>
1)若key存在,则将value追加到原来的key值的末尾
2)若key不存在,则进行设置改key的值为value,可以理解为执行set操作
strlen 获取指定key中值的长度
语法:strlen key
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> strlen keya</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">12</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key不存在,返回0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> strlen ziruchu</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key不是字符串时报错</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> lpush db mysql redis</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">2</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> strlen db</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(error) WRONGTYPE Operation against a key holding the wrong kind of value</span>
1)只能获取key类型为字符串的值的长度,否则报错
2)当key不存在时,返回0
我是小白,期待和优秀的你一起同行!
小白
2020年08月30日