码迷,mamicode.com
首页 > 其他好文 > 详细

3、数据类型一:strings

时间:2016-07-03 01:47:19      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

Redis支持5大数据结构:stringshasheslistssets,sorted sets

Redis官网的第一句话就是:Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker.

 

这一节总结strings

1、常用命令:

SET key value [EX seconds] [PX milliseconds] [NX|XX]
SETEX key seconds value
PSETEX key milliseconds value
SETNX key value
GET key        
GETSET key value
 
MSET key value [key value ...]
MSETNX key value [key value ...]
MGET key [key ...]

INCR key
INCRBY key increment
INCRBYFLOAT key increment
DECR key
DECRBY key decrement

APPEND key value
STRLEN key
GETRANGE key start end

SETBIT key offset value
GETBIT key offset

BITCOUNT key [start end]
BITOP operation destkey key [key ...]
BITPOS key bit [start] [end]

 

2、命令解析

①、SET key value [EX seconds] [PX milliseconds] [NX|XX]

功能:设置一个key,可选项:

   EX:设置存活时间,单位秒,

   PX:设置存活时间,单位毫秒,

   NX:只有当key不存在的时候才执行,

   XX:只有当key存在的时候才执行(如果没有指定NX或XX那么,无论key是否存在都会执行。不存在,则新增key;存在,则覆盖原来的key)。

时间复杂度:O(1)

思考:上面的写法复制于官网,但是本人觉的这个写法不合适,应该写成SET key value [EX seconds | PX milliseconds] [NX|XX],因为EX与PX只能选其一,如果同时设置不会报错,但是只有后面的选项生效。

example

技术分享

 

 ②、SETEX key seconds value / PSETEX key milliseconds value

功能:设置key,同时指定存活时间,两者不同在于前一个时间单位是“秒”,后一个为“毫秒”。等同于下面两条命令:

  SET mykey value
  EXPIRE mykey seconds / PEXPIRE mykey milliseconds

时间复杂度:O(1)

example

技术分享

 

③、SETNX key value

功能:如果key不存在,则设置key;如果存在,则不作任何处理。

时间复杂度:O(1)

 

④、GET key

功能:获取key的值

时间复杂度:O(1)

 

⑤、GETSET key value

功能:将key的值设置为value,同时返回原来的key值。

时间复杂度:O(1)

example

技术分享

 

⑥、MSET/MGET

功能:同上的SET和GET功能,最前面的“M”表示“多个”。

时间复杂度:O(N),其中N表示列表中key的个数

 

⑦、MSETNX key value [key value ...]

功能:当列表中所有key都不存在的时候,执行该操作。注意:如果列表中有某个key已经存在,则操作不会成功。

时间复杂度:O(N),N表示列表中key的个数

example

 技术分享

 

⑧、INCR key / INCRBY key increment / INCRBYFLOAT key increment

功能:INCR key是将key的值作加1操作。如果不是加1,则使用INCRBY key increment。如果key是一个浮点数,或者是要加的数是一个浮点数,则需要使用INCRBYFLOAT key increment。

时间复杂度:O(1)

example

技术分享

 

⑨、DECR key / DECRBY key decrement

功能:将key的值作减1操作,或者是减去其它值

时间复杂度:O(1)

example

技术分享

 

⑩、APPEND key value

功能:在key后面附加一个value值。相当于字符串的拼接操作。

时间复杂度:O(1)

example

技术分享

思考:example中关于num的操作挺有意思的,可以将纯数字的strings作append操作,如果结果还能是一个纯数字,则可以执行incr等操作。

 

?、STRLEN key

功能:测量key的长度,单位为“字节”。实际上是key的值占用了多少个字节。

时间复杂度:O(1)

example

技术分享

 

?、GETRANGE key start end

功能:返回子序列。从左到右是0,1,2...,从右到左-1,-2,-3...。也就是说,如果数字是正数,则表示“左起第xxx个”,0表示左起第一个;数值是负数,则表示“右起第xxx个”,-1表示右起第一个。注意:记住一点,返回结果是key对应value的子串,这就导致了要求“start指示的位置必须在end指示位置的左边”,否则返回结果为空串。

时间复杂度:O(N),N表示返回字符串的长度。

example

技术分享

 

3、数据类型一:strings

标签:

原文地址:http://www.cnblogs.com/lj95801/p/5636414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!