缓存
BooleanZhang
这个作者很懒,什么都没留下…
展开
-
redis命令之哈希表类型ltrim命令用法详情
列表LTRIM命令命令:ltrim key start end,对队列key的元素按照start的位置和end位置进行截取,只保留从start位置到end位置之间的元素,并返回ok(删除整个列表时返回empty...)。特殊情况:1.key不是队列类型的情况下会报错2.当start位置在end位置的右边(左边为队列头,右边为队列尾)的情况(因为两个值都可以为负数,所以现在说左右且规定头尾,不会有歧义),会将整个队列删除。127.0.0.1:6379> flushallOK原创 2020-08-26 17:47:23 · 528 阅读 · 1 评论 -
redis命令之哈希表类型lrange命令用法详情
列表LRANGE命令命令:lrange key start end,返回当前队列key,下标为start到下标为end之间的元素。特殊情况和getrange类似,返回值不会是“”,而是empty...见string类型getrange命令127.0.0.1:6379> flushallOK127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379> lrange db 0 0(empty list or set)原创 2020-08-26 17:46:36 · 1314 阅读 · 0 评论 -
redis命令之哈希表类型lset命令用法详情
列表LSET命令命令:lset key index value,将当前列表下标为index的元素重置为value。当且仅当key存在,且index不越界的情况下返回ok,且下标为index的元素的值会被value覆盖。其他都会返回error。127.0.0.1:6379> flushallOK127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379> lset db 0 redis ##key不存在的情况(er原创 2020-08-26 17:46:02 · 1513 阅读 · 0 评论 -
redis命令之哈希表类型linsert命令用法详情
列表LINSERT 命令命令:linsert key before|after pivot value,在列表key中,以piovt的值为支点,在它之前或者之后插入value,并返回插入之后的key的长度。特殊情况:1.当key不存在时,操作不会被执行并返回02.当支点pivot不存在时操作不会被执行并返回-1127.0.0.1:6379> flushallOK127.0.0.1:6379> exists db (integer) 0127.0.0.1:637原创 2020-08-26 17:45:24 · 337 阅读 · 0 评论 -
redis命令之哈希表类型lindex命令用法详情
列表LINDEX命令命令:lindex key index,返回从列表从表头(队列列头)开始下标为index的元素。特殊的情况,当index<0时,返回的是从列表尾部(队列尾)开始的第|index|绝对值的元素,当key不存在或者index参数的值不在列表的区间范围内(out of range),返回nil。127.0.0.1:6379> flushallOK127.0.0.1:6379> lindex db 0 ##key不存在的情况(nil)127.0.0.1:6原创 2020-08-26 17:44:49 · 957 阅读 · 0 评论 -
redis命令之哈希表类型llen命令用法详情
列表LLEN命令命令:llen key,返回当前列表key的长度。当key不存在时返回0.127.0.0.1:6379> keys *1) "score"127.0.0.1:6379> lrange score 0 -11) "90"2) "93"3) "90"127.0.0.1:6379> llen score(integer) 3原创 2020-08-26 17:43:14 · 708 阅读 · 0 评论 -
redis命令之哈希表类型lrem命令用法详情
列表LRM命令命令:lrem key count value,从列表key中移除|count|绝对值个value,并返回真正被移除的个数(当key中values的个数小于count的绝对值的时候)。特殊情况:1.count > 0:从表头(左侧)开始向表尾(右侧),依次删除count个value2.count < 0:从表尾(右侧)开始向表头(左侧),依次删除count绝对值个value3.count = 0:从key中移除所有的value4.关于返回值:当count原创 2020-08-25 16:32:18 · 1399 阅读 · 0 评论 -
redis命令之哈希表类型rpoplpush命令用法详情
列表RPOPLPUSH命令命令:rpoplpush popKey pushKey,一共分为两个顺序操作并且是原子性操作。第一步:将列表popKey进行rpop操作,移除popKey的表尾(右侧)元素,并将rpop的返回值(被移除的元素)作为命令的返回值。第二部:将上面rpop的元素通过lpush命令添加到pushKey的表头(左侧)。特殊情况:1.因为是原子性操作,所以当popKey不存在时,rpop将会不做任何操作,整个命令也就不会执行任何操作,返回nil2.popKey和pushK.原创 2020-08-25 16:31:50 · 839 阅读 · 0 评论 -
redis命令之哈希表类型rpop命令用法详情
列表RPOP命令命令:rpop key,移除并返回表尾(右侧)的元素。当key不存在时,返回nil127.0.0.1:6379> lrange numbers 0 -11) "2"2) "3"3) "4"4) "5"127.0.0.1:6379> lpush numbers 1(integer) 5127.0.0.1:6379> lrange numbers 0 -1 ##列表元素为 1 2 3 4 51) "1"2) "2"3) "3"4) ".原创 2020-08-25 16:31:14 · 365 阅读 · 0 评论 -
redis命令之哈希表类型lpop命令用法详情
列表LPOP命令命令:lpop key,移除并返回表头(左侧)的元素。当key不存在时,返回nil127.0.0.1:6379> flushallOK127.0.0.1:6379> rpush numbers 1 2 3 4 5(integer) 5127.0.0.1:6379> lrange numbers 0 -11) "1"2) "2"3) "3"4) "4"5) "5"127.0.0.1:6379> lpop numbers ##返回值为原创 2020-08-25 16:30:43 · 2065 阅读 · 0 评论 -
redis命令之哈希表类型rpushx命令用法详情
列表RPUSHX命令命令:rpushx key value,当且仅当key存在时将一个value插入到列表的表尾(右侧),并返回执行完之后当前列表的长度。当key不存在时,该命令不会执行任何操作。127.0.0.1:6379> flushallOK127.0.0.1:6379> llen numbers(integer) 0127.0.0.1:6379> rpushx numbers 1 ##key不存在时不会执行任何操作(integer) 0127.0.0.1.原创 2020-08-25 16:29:58 · 280 阅读 · 0 评论 -
redis命令之哈希表类型rpush命令用法详情
列表RPUSH命令命令:rpush key value [value...],将一个或者多个依次插入到列表的表尾(可以理解为逆时针旋转90°的栈,遵循LIFO,要注意LPUSH和RPUSH的区别),并返回执行完之后当前列表的长度。当同时插入多个value的时候是原子性操作,要么都成功,要么都不成功。...原创 2020-08-25 16:29:23 · 1029 阅读 · 0 评论 -
redis命令之哈希表类型lpushx命令用法详情
列表LPUSHX命令命令:lpushxkey value,当且仅当key存在时将一个value插入到列表的表头(可以理解为逆时针旋转90°的栈,遵循LIFO),并返回执行完之后当前列表的长度。当key不存在时,该命令不会执行任何操作。特殊说明:想用次命令,只能先用lpush key value [value..],先建立key。127.0.0.1:6381> flushallOK127.0.0.1:6381> lpushx db redis mysql #db不存在时,不原创 2020-08-25 16:28:42 · 175 阅读 · 0 评论 -
redis命令之哈希表类型lpush命令用法详情
列表LPUSH命令命令:lpush key value [value...],将一个或者多个依次插入到列表的表头(可以理解为逆时针旋转90°的栈,遵循LIFO),并返回执行完之后当前列表的长度。当同时插入多个value的时候是原子性操作,要么都成功,要么都不成功。特殊的情况:1.如果key不存在,一个空列表会被创建并执行 lpush操作。2.当key存在但不是列表类型时,返回一个错误。127.0.0.1:6381> flushallOK127.0.0.1:63...原创 2020-08-25 16:27:26 · 1962 阅读 · 0 评论 -
redis命令之哈希表类型hgetall命令用法详情
哈希表HGETALL命令命令:hgetall key,返回对应key的所有的域field和与之对应的value,当key不存在时返回empty list or set,而不是nil127.0.0.1:6381> flushallOK127.0.0.1:6381> hgetall Jordan(empty list or set)127.0.0.1:6381> hmset Jordan age 18 team bullOK127.0.0.1:6381> hge原创 2020-08-20 01:06:37 · 4283 阅读 · 0 评论 -
redis命令之哈希表类型hvals命令用法详情
哈希表HVALS命令命令:hvals key,返回指定表key下所有field的值,当key不存在的时候返回empty list or set,而不是nil127.0.0.1:6381> flushallOK127.0.0.1:6381> hvals Jordan(empty list or set)127.0.0.1:6381> hmset Jordan age 18 team bullOK127.0.0.1:6381> hvals Jordan1) "原创 2020-08-20 01:06:44 · 615 阅读 · 0 评论 -
redis命令之哈希表类型hkeys命令用法详情
哈希表HKEYS命令命令:hkeys key,返回key的所有的域field,如果key不存在,返回值为(empty list or set),而不是nil127.0.0.1:6381> flushallOK127.0.0.1:6381> hkeys Jordan ##key不存在的时候返回值不是nil,而是empyt list or set(empty list or set)127.0.0.1:6381> hmset Jordan age 18 team bul原创 2020-08-20 01:06:53 · 548 阅读 · 0 评论 -
redis命令之哈希表类型hmget命令用法详情
哈希表HMGET命令命令:hmget key field [field...],将按照指定的key和field,并按照指定field的顺序,将对应的value返回。如果key或者key的field不存在,将返回nil127.0.0.1:6381> flushallOK127.0.0.1:6381> hget Jordan age(nil)127.0.0.1:6381> hset Jordan age 18 sex man(integer) 2127.0.0.1:6原创 2020-08-20 01:06:19 · 3393 阅读 · 0 评论 -
redis命令之哈希表类型hmset命令用法详情
哈希表HMSET命令命令:hmset key field value [field value...],给指定表key的field字段赋(或覆)值,命令执行成功返回OK,没有的key和field将新创建,并赋值。127.0.0.1:6381> flushallOK127.0.0.1:6381> hmset Jordan age 20OK127.0.0.1:6381> hmset Jordan age 18 sex manOK127.0.0.1:6381> h原创 2020-08-20 01:07:01 · 2001 阅读 · 0 评论 -
redis命令之哈希表类型hincrbyfloat命令用法详情
哈希表HINCRBYFLOAT KEY FIELD INCREMENT命令命令:hincrbyfloat key field increment,将指定表key的field字段,按照increment增量进行加算,increment可以为负数,如果key field不存在,按照0进行初始化,并进行加运算,并将最终结果返回。127.0.0.1:6381> flushallOK127.0.0.1:6381> hincrbyfloat Jordan score 10.5"10.5"原创 2020-08-20 01:06:27 · 346 阅读 · 0 评论 -
redis命令之哈希表类型hincrby命令用法详情
哈希表HINCRBY KEY FIELD INCREMENT命令命令:hincrby key field increment,将指定表key的field字段,按照increment增量进行加算,increment可以为负数,如果key field不存在,按照0进行初始化,并进行加运算,并将最终结果返回。127.0.0.1:6381> flushallOK127.0.0.1:6381> HINCRBY Jordan age 10(integer) 10127.0.0.1:63原创 2020-08-20 01:04:22 · 1524 阅读 · 0 评论 -
redis命令之哈希表类型hstrlen命令用法详情
哈希表HSTRLEN命令命令:hstrlen key field,获取指定key下某个域field的value的长度,对于不存在的key或者field返回0.127.0.0.1:6381> flushallOK127.0.0.1:6381> hset user u1 "Jordan" u2 "James" u3 "O'Neal"(integer) 3127.0.0.1:6381> hstrlen user u1 u2(error) ERR wrong number原创 2020-08-18 01:55:23 · 161 阅读 · 0 评论 -
redis命令之哈希表类型hlen命令用法详情
哈希表HLEN命令命令:hlen key,获取该key下的域field的个数。如果key不存在会返回0,特殊情况当某个key下所有的field都被删除后,也会返回0127.0.0.1:6381> flushallOK127.0.0.1:6381> hlen user(integer) 0127.0.0.1:6381> hset user name "Jordan" age 18(integer) 2127.0.0.1:6381> hlen user(int原创 2020-08-18 01:55:32 · 767 阅读 · 0 评论 -
redis命令之哈希表类型hdel命令用法详情
哈希表HDEL命令命令:hdel key field [field] [field...],同时删除N个field,对于不存在的field会被忽略,并返回被删除的field的个数。当在该key下的最后一个field也被删除掉的话,再通过hget key命令获取value的时候会返回(empty list or set)127.0.0.1:6381> flushallOK127.0.0.1:6381> hset user name "Jordan" sex "man" age 1原创 2020-08-18 01:55:39 · 2828 阅读 · 0 评论 -
redis命令之哈希表类型hexists命令用法详情
哈希表HEXISTS命令命令:hexists key field,判断该key下的域field是否存在,如果存在返回1,不存在返回0127.0.0.1:6381> flushallOK127.0.0.1:6381> hset user name "Jordan"(integer) 1127.0.0.1:6381> hget user name"Jordan"127.0.0.1:6381> HEXISTS user name(integer) 1127.0原创 2020-08-18 01:55:45 · 1625 阅读 · 0 评论 -
redis命令之哈希表类型hget命令用法详情(不支持多field)
哈希表HGET命令命令:hget key field,通过key获取field的值,不能同时获取多个field!一次只能获取一个field的value。127.0.0.1:6381> flushallOK127.0.0.1:6381> hset user_id_1 name "Jordan" age 18(integer) 2127.0.0.1:6381> hget user_id_1 name age #不支持同时获取多个field域的值(error) ERR原创 2020-08-18 01:55:56 · 5806 阅读 · 0 评论 -
redis命令之哈希表类型hsetnx命令用法详情(不支持多field)
哈希表HSETNX命令命令:hsetnx key filed value,该命令同时只能对一个域field进行操作,也就是说hsetnx命令如果同时对两个或多个field字段进行操作就会报错(所以,如果想通过hsetnx命令添加多个字段的话,只能一个命令一个命令的执行),并且如果field字段是新添加的字段的话会返回1,覆写value的话就会返回0127.0.0.1:6381> flushallOK127.0.0.1:6381> hsetnx user_id_1 name "J原创 2020-08-18 01:56:05 · 592 阅读 · 0 评论 -
redis命令之哈希表类型hset命令用法详情(返回值需要特别注意)
哈希表HSET命令命令:hset tableName filed value [filed value] [field value...],将哈希表tableName的域field的值设置为value。返回值为新创建的field域的个数,比如:如果域field为name是本次命令新创建的,则返回1,如果域field为name和域age两个域是本次命令新创建的,则返回2,也就是说对于已经存在的域进行了value的覆写,是不计算在返回值中的。特殊说明:1.如果给定的哈希表并不存在, 那么一个新的原创 2020-08-18 00:42:58 · 9474 阅读 · 0 评论 -
redis命令之string类型mget命令用法详情
Stirng字符串MGET命令命令:mget key1 [key2] [key3...],返回多个key的value,如果key不存在则返回nil127.0.0.1:6381> flushallOK127.0.0.1:6381> mget name age1) (nil)2) (nil)127.0.0.1:6381> mset name zhangsan age 18OK127.0.0.1:6381> mget name age class1) "zha原创 2020-08-16 18:12:47 · 711 阅读 · 0 评论 -
redis命令之string类型msetnx命令用法详情
Stirng字符串MSETNX命令--原子性操作命令:msetnx key value [key value...],当且仅当所有命令中出现的key不存在的时候才会被执行,返回1。也就是说只要命令中有一个key已经存在,那么操作就不会被执行,返回0127.0.0.1:6381> flushallOK127.0.0.1:6381> mset name zhangsan age 18 class 1OK127.0.0.1:6381> mget name age class原创 2020-08-16 18:09:17 · 373 阅读 · 0 评论 -
redis命令之string类型mset命令用法详情
Stirng字符串MSET命令命令:mset key value [key value] [key value...],同时对一个或多个键值对进行赋(或覆)值。成功返回OK特别注意:mset操作是原子性操作,所有的键值对都会被执行,不会出现有的键值对没成功。所以如果不希望对已有过key value进行overwrite操作的话,可以考虑用msetnx操作,这个命令只会在所有命令中出现的key不存在的情况下才会执行,否则就不会执行。127.0.0.1:6381> flushallOK原创 2020-08-16 18:03:17 · 725 阅读 · 0 评论 -
redis命令之string类型incrbyfloat命令用法详情
Stirng字符串INCRBYFLOAT命令(标红的部分需要特别注意,需要动手实践才好理解)命令:incrbyfloat key increment,对key的value加上浮点型小数increment,并将结果返回。特殊情况:不管是执行命令之前的value(key不存在除外),还是要执行的增量increment,都必须可以被转换成float类型,否则会报错127.0.0.1:6381> flushallOK127.0.0.1:6381> incrbyfloat sco原创 2020-08-16 17:38:54 · 235 阅读 · 0 评论 -
redis命令之string类型incrby/decrby命令用法详情
Stirng字符串INCRBY命令命令:incrby key increment,将key的value按照increment增量进行加运算,并将结果返回127.0.0.1:6381> flushallOK127.0.0.1:6381> incrby age 10(integer) 10127.0.0.1:6381> get age"10"127.0.0.1:6381> incrby age 10(integer) 20127.0.0.1:6381>原创 2020-08-16 17:32:07 · 300 阅读 · 0 评论 -
redis命令之string类型incr/decr命令用法详情
Stirng字符串INCR命令 限制在64位有符号整数命令:incr key 对key存储的value值+1,并将最终的结果作为返回值。特殊情况:1.如果还不存在当前key的话,会进行两个操作。第一步先将该key的value设置为0,可以理解为 set key 0,第二步将进行+1操作,并将1返回。2.如果存在该key的value时 a.如果value可以被转化成int类型,则会+1,并将结果返回 b.如果value不可以被转化成int类型,则会报错127.0....原创 2020-08-16 17:28:40 · 1818 阅读 · 0 评论 -
redis命令之string类型getrange命令用法详情(重要的地方需要好好理解)
Stirng字符串GETRANGE命令(标红的部分需要特别注意,需要动手实践才好理解)命令:getrange key start end,返回从start下标开始,到end下标结束的全部字符串,即通过start和end的两个下标截取字符串(包含start和end两个下标对应的字符串)。特殊补充:1.start和end都可以小于02.只要getrange key start end中的key不存在,不管start和end谁大谁小始终会返回空字符串“”3.当存在该key的键值对情况下:原创 2020-08-16 17:18:34 · 1108 阅读 · 0 评论 -
redis命令之string类型setrange命令用法详情
Stirng字符串SETRANGE命令命令:setrange key offset value,从偏移量offset开始,覆写value(对于新的value长度如果小于旧值从offset到结束的长度时,长度小于的部分会保持不变),并返回当前value的长度特殊的情况如下:1.offset偏移量从0开始,如果偏移量小于0,则会报错(error) ERR offset is out of range2.如果offset的下标大于旧值的长度,中间的部分会用零字节(zerobytes,“\x00原创 2020-08-15 23:11:37 · 973 阅读 · 0 评论 -
redis命令之string类型append命令用法详情
Stirng字符串APPEND命令命令:append key value,将value值追加到已存在的value值的后面,并追加操作之后的新value的长度。特殊的,当之前redis中没有该键值对存在的话,返回0,并将此value设置为key的值,相当于set key value127.0.0.1:6379> flushallOK127.0.0.1:6379> append db redis(integer) 5127.0.0.1:6379> append db '原创 2020-08-15 22:38:33 · 450 阅读 · 1 评论 -
redis命令之string类型strlen命令用法详情
Stirng字符串STRLEN命令命令:strlen key 返回key键的value字符串的长度。1.当键值对存在时包括3种情况a.当value为空字符串时返回0b.当value非字符串类型时,报错c.当value为字符串时,返回value字符串的长度2.当不存在该key键的时候,返回0127.0.0.1:6379> flushallOK127.0.0.1:6379> strlen db //当不存在键值对时,返回长度00127.0.0.1...原创 2020-08-15 22:29:09 · 295 阅读 · 0 评论 -
redis命令之string类型getset命令用法详情
Stirng字符串GETSET命令命令:getset key value 这里面包括了两个操作:get和set,get是指get该key已被设置的old value(旧值),并将旧值作为命令的返回值(当db键存在,但是value非字符串的时候报错)。如果旧值old value不存在,则返回nil;set是指将将key的值设置为命令中的new value(新值)。127.0.0.1:6379> flushallOK127.0.0.1:6379> getset db redis /原创 2020-08-15 22:05:10 · 461 阅读 · 0 评论 -
redis命令之string类型get命令用法详情
Stirng字符串GET命令命令:get key 获取和该key相关联的value返回情况说明:1.若不存在该key,返回nil2.若存在,此时又包括了两种情况:a.该key对应的value值为String类型,则返回对应的valueb.该key对应的value值不是String类型,则返回报错信息:(error) ERR Operation against a key holding the wrong kind of value127.0.0.1:6379>原创 2020-08-15 17:40:15 · 1403 阅读 · 0 评论