)
Redis命令的名称是大小写不敏感的输入的命令名称只要正确无论大小写都能得到正确的结果。【 字符串String命令 】字符串类型是redis中最基础的数据类型任何类型的字符串都可以存储。字符串类型最大可以存储512MB的数据。SET设置键值对SET key value [EX seconds] [PX milliseconds] [NX|XX]SET命令用于把value设置到key中。如果key已存在则覆盖旧的value。“EX seconds”用于指定key的生存时间例如“SET abc 123 EX 60”表示设置abc的值为123并且这个abc只会存在60秒。SET key value EX seconds 等价于 SETEX key seconds value SETEX命令是专门用于设置key的生存时间的命令。“PX milliseconds”也用于指定key的生存时间例如“SET abc 123 PX 10000”表示这个abc只会存在10000毫秒。SET key value PX milliseconds 等价于 PSETEX key milliseconds value PSETEX命令也是专门用于设置key的生存时间的命令。“NX”表示当key不存在时才对key进行设置。“XX”表示当key存在时才对key进行设置。SET命令执行成功会返回OK如果设置了NX或XX造成条件不满足而执行失败时返回null。MSET设置多个键值对MSET key value [key value...]MSET命令是原子性操作不存在部分更新的情况。MSET命令不可能执行失败执行完毕返回OK。举例MSET name Jack age 23 gender maleSETNX设置不存在的键值对SETNX key value如果key不存在则进行设置返回1如果key已经存在则什么都不做返回0。MSETNX设置多个不存在的键值对MSETNX key value [key value...]SETNX命令的多键值对版本这个命令是原子性操作。当且仅当所有给定的key都不存在时才进行设置并返回1只要有一个key是存在这条命令就不做任何操作并返回0。GET获取键值对的值GET keyGET命令只能用于处理字符串如果GET命令获取到的value不是字符串类型会返回一个错误。当key存在时返回key所对应的value如果key不存在时返回null。MGET获取多个键值对的值MGET key [key...]返回包含所有给定key的值的列表如果某一个key不存在则这个key的对应位置上会返回一个null。SETRANGE替换键对应值的子字符串SETRANGE key offset value对key做对应的字符串值进行内容替换从offset指定的下标开始替换为value。返回执行SETRANGE命令后key对应的字符串的长度。GETRANGE获取键对应值的子字符串GETRANGE key start end该命令用于获取key对应的字符串值从start开始到end截止的子字符串。start和end都是从0开始并且都是整数也可以为负整数。当取负数时表示从字符串最后开始计数-1表示字符串的最后一个字符-2表示字符串的倒数第二个字符。。。SETBIT设置偏移量上的位bit的值SETBIT key offset value该命令对key的所对应的字符串设置指定偏移量上的位bit。value只可以取0或1。key不存在时会自动生成一个新的字符串这个字符串是可动态扩展的扩展时使用0来填充空白位置。offset必须是非负整数且必须小于2^32。GETBIT获取偏移量上的位bit的值GETBIT key offset和SETBIT命令对应的一条命令一个用于设置一个用于获取不做解释。GETSET为键设置新值GETSET key valueGETSET命令将key对应的字符串设置为value同时返回旧的字符串值如果key不存在返回null。如果key存在但其对应的值不是字符串时会报错。APPEND为键追加值APPEND key value将value追加到key对应的字符串的末尾。返回命令执行后key对应的字符串的长度。BITCOUNT统计键中为1的位bit的个数BITCOUNT key [start] [end]start和end用于限定统计范围如果start和end参数不出现在命令中则认为是统计整个字符串。BITOP对键进行位元运算BITOP operation destkey key [key...]BITOP命令对n个key对应的字符串进行位元运算然后把运算结果保存到destkey下。operation的取值有4种AND、OR、NOT、XOR。返回保存到destkey下的字符串的长度。STRLEN统计字符串长度STRLEN key统计key对应的字符串的长度。如果key不存在返回0如果key对应的不是字符串报错。DECR键值减一自减DECR key如果key不存在则会在数据库中新增key并初始化为0然后减一。这个命令只对数字类型的起作用如果key对应的值不是数字也不是能转为数字的类型会报错。同时DECR命令要求key对应的数字最宽64位。返回减去一后的新值。DECRBY键值减NDECRBY key n和DECR一样只不过DECR是减一而DECRBY是减n。INCR键值加一自加INCR key和DECR一样只不过DECR是减一而INCR是加一。INCRBY键值加nINCRBY key n和DECR一样只不过DECR是减一而INCRBY是加n。INCRBYFLOAT键值加nn为浮点数INCRBYFLOAT key n和INCRBY一样只不过这里的n是浮点数而INCRBY中的n如果是浮点数会报错。【 哈希Hash命令 】Hash类型是String类型的域field和值value的映射表基于这个定义Hash类型常常用于存储对象信息。哈希表可以存储2^32-1个键值对40亿以上。HSET为哈希表的域设置值HSET key field value将哈希表key中的field的值设置为value。如果key不存在会自动在数据库中新增一个叫key的哈希表。在哈希表中如果field不存在会在哈希表中创建一个field然后把value设置上去并返回1如果field已存在会用value替换旧值然后返回0。HSETNX为哈希表中不存在的域设置值HSETNX key field value和HSET一样唯一的区别是如果field存在则该命令无效返回0如果field不存在则新减field并把其对应的值设置为value并返回1。HMSET向哈希表中设置多个域和值HMSET key field value [field value...]当HMSET命令执行成功后会返回OK如果key不是哈希表直接报错。HGET获取哈希表中某个域的值HGET key field如果哈希表key存在且域field存在则返回对应的值否则返回null。HGETALL获取哈希表中所有的域和值HGETALL key如果哈希表key存在将会以列表的形式返回其所有的field和value该列表的长度是哈希表中field的个数的两倍如果哈希表key不存在则返回空列表。HMGET获取多个域的值HMGET key field [field...]该命令会返回一个value的列表列表的长度是命令中出现的field的个数。如果key不存在则列表的每一个元素都是null如果列表存在但某些field不存在则在该field对应的位置上返回null。HKEYS获取哈希表中所有的域HKEYS key以列表的形式返回哈希表key中的所有field。如果哈希表key不存在则列表长度为0空列表。KVALS获取哈希表中所有的值HVALS key和HKEYS命令一样不过HVALS获取的是值value而KEYS获取的是域field。HLEN获取哈希表中域的个数HLEN key返回哈希表key中field的个数如果key不存在返回0。HSTRLEN获取指定哈希表中某域所对应值的字符串长度HSTRLEN key field当哈希表key不存在或field不存在时返回0否则返回字符串长度。HINCRBY为哈希表的域加上增量值HINCRBY key filed n为哈希表key的field域对应的值加上n。n可以为负数但必须是整数。如果key不存在或field不存在会在数据库中自动新增然后再执行该命令。该命令只能作用于数字类型或可转换为数字类型的值上否则会报错。命令执行成功后会返回新值。HINCRBYFLOAT为哈希表的域加上增量值可以是浮点数HINCRBYFLOAT key field n和HINCRBY一样但是n可以使浮点数而INCRBY只能作用于整数。HDEL删除哈希表中的某些域HDEL key field [field...]删除哈希表key中的指定域如果某个指定的域不存在会自动忽略这个域。命令执行完毕会返回被真正删除的域的个数不包含被忽略的域。HEXISTS判断哈希表中是否存在某个域HEXISTS key field如果哈希表key存在且域field存在返回1否则返回0。【 列表List命令 】列表List数据类型是字符串列表元素按照插入顺序存储Redis的列表可以存储2^32-1个元素。LPUSH将n个元素插入到列表头部LPUSH key value [value...]注意这条命令是把n个value依次插入到列表的头部所以执行完下面这条命令 LPUSH alist x y z 列表alist的内容是z、y、x而不是x、y、z命令执行完毕返回列表的长度。RPUSH将n个元素插入到列表尾部RPUSH key value [value...]注意这条命令是把n个value依次插入到列表的尾部所以执行完下面这条命令 RPUSH alist x y z 列表alist的内容是x、y、z命令执行完毕返回列表的长度。LINSERT插入一个元素到列表中LINSERT key BEFORE | AFTER pivot value该命令向列表key中插入一个元素value这个元素的位置在pivot元素之前BEFORE或之后AFTER。当列表key中不存在元素pivot时该命令无效当key不存在时key被认为是空列表命令也无效。如果key不是列表类型会报错。命令如果成功执行返回列表的新长度如果pivot不存在返回-1如果key不存在或key是空列表返回0。举例执行完下面这条命令 RPUSH somelist a b c 列表somelist中的元素依次为a、b、c。 那么执行下面这条命令之后 LINSERT somelist BEFORE b x 列表somelist中的元素依次为a、x、b、c。 接着再执行下面这条命令 LINSERT somelist AFTER b y 列表somelist中的元素依次为a、x、b、y、c。LPUSHX将值插入列表头部LPUSHX key valueLPUSHX和LPUSH命令很像都是把元素插入列表的头部不同之处在于当key不存在时LPUSH会自动新建一个名字叫key的列表并把value插入到这个新列表的头部而LPUSHX要求数据库中必须存在一个名叫key的列表如果不存在LPUSHX什么也不做。LPUSHX命令执行成功后返回列表的长度如果key不存在返回0。RPUSHX将值插入列表尾部RPUSHX key valueRPUSHX命令和LPUSHX命令的唯一区别是RPUSH是把元素插入到列表的尾部而LPUSHX是把元素插入到列表的头部。LSET修改列表的某个元素LSET key index value把列表key中下标为index的元素的值设置为value。如果LSET执行成功返回OK否则报错比如下标越界。LLEN获取列表的长度LLEN key执行该命令会返回列表key中的元素个数如果key不存在返回0如果key不是列表报错。LINDEX获取列表中指定下标的元素的值LINDEX key indexindex取0表示获取列表key的第一个元素取1表示获取列表key的第二个元素以此类推。index也可以取负数-1表示列表的最后一个元素-2表示列表的倒数第二个元素以此类推。如果key不是列表报错如果index越界返回null否则返回对应元素的值。LRANGE获取列表指定区间内的所有元素LRANGE key start endstart和end均从0开始0代表列表的第一个元素1代表列表的第二个元素以此类推。start和end也可以取负数-1代表列表的最后一个元素-2代表列表的倒数第二个元素依次类推。注意start和end越界并不会引发错误。该命令执行完毕返回指定区间内的所有元素以一个子列表的形式返回。LPOP获取并删除列表的第一个元素LPOP key执行该命令后会返回列表key的第一个元素同时把这个元素从列表中删除如果列表key不存在返回null。RPOP获取并删除列表的最后一个元素RPOP key该命令和LPOP命令唯一的区别是RPOP是操作列表的最后一个元素而LPOP操作的是列表的第一个元素。BLPOP阻塞式LPOPBLPOP key [key...] timeoutBLPOP命令是LPOP命令的阻塞版本。该命令依次检查各个列表弹出第一个非空列表的头元素。如果所有列表都为空命令会被阻塞直到有列表非空或阻塞时间吃的好过timeout按秒计算为止。timeout取0时允许无限阻塞。如果成功返回返回值是一个包含两个元素的列表第一个元素是列表key的名字第二个元素是该列表key的第一个元素。如果是超时返回的返回值是一个空列表。BRPOP阻塞式RPOPBRPOP key [key...] timeoutBRPOP命令和BLPOP命令是类似的只不过BRPOP操作的是列表的最后一个元素而BLPOP操作的是列表的第一个元素。LREM删除n个指定的元素LREM key n value该命令从列表key中删除n个值为value的元素。n取0时LREM命令会从列表key中删除所有值为value的元素。n取正数时LREM从列表key的头部开始删除n个值为value的元素。n取负数是LREM从列表key的尾部开始删除n个值为value的元素。key存在时返回真正删除的元素的数量key不存在时返回0。LTRIM在指定区间内修剪列表LTRIM key start stop举例执行下面这条命令 LTRIM somelist 0 9 仅会保留列表somelist中下标从0到9共10个元素其余的元素都会被删除。start和stop都是从0开始0代表列表的第一个元素1代表第二个以此类推。start和stop也可以取负数-1代表列表的最后一个元素-2代表倒数第二个依次类推。如果key不是列表类型会报错。start和stop越界不会报错如果start key.maxIndex或start stopLTRIM命令会清空整个列表。如果stop key.maxIndexstop会被置为key.maxIndex。返回OK代表LTRIM命令执行成功。RPOPLPUSH在两个列表间移动元素RPOPLPUSH source destination从列表source中弹出最后一个元素返回给客户端这是一个原子操作。然后这个元素会被插入到列表destination的头部。如果列表source不存在那么返回给客户端的元素为null后续操作不会执行相当于整条命令不执行。如果source和destination是同一个列表则命令的执行等价于把列表的最后一个元素移动到列表的头部。命令执行完毕返回被弹出的元素。BRPOPLPUSH阻塞式RPOPLPUSHBRPOPLPUSH source destination timeout如果列表source不存在为空命令会阻塞直到列表source中存在元素或超时。当列表source不为空时命令的执行效果和RPOPLPUSH一样。timeout的单位为秒取值为0时可以无线时长地阻塞。如果超时返回null和等待时长如果返回一个列表则列表的第一个元素是从列表source中弹出的元素第二个元素是等待时长。这句话是从书上看到的实际操作中发现返回值的形式并不是这样的。【 集合Set命令 】SADD添加n个元素到集合中SADD key member [member...]如果集合key不存在会自动创建一个集合。如果被添加到集合中的元素member在集合中已经存在这个元素member会被忽略不存在时会被添加到集合中去。如果key不是集合类型会报错。命令执行完毕返回实际被添加到集合中的元素的个数不包含被忽略的元素。SMOVE从源集合中移动一个元素到目标集合中SMOVE source destination memberSMOVE命令是原子操作它的效果是从集合source中把值为member的元素移动到集合destination中去。source或destination不是集合类型时报错。命令成功执行后返回1如果source不存在或source中没有member元素或destination中已经存在member元素时返回0。SUNIONSTORE把n个集合中的元素保存到目标集合SUNIONSTORE destination source [source...]目标集合destination中的元素是n个源集合source中的元素的并集。命令执行完毕后返回目标集合destination中元素的个数。SISMEMBER判断某元素是否存在于指定集合中SISMEMBER key member元素member如果存在于集合key中返回1否则返回0。集合key不存在也返回0。SCARD获取集合中元素的个数SCARD key返回集合key中元素的个数如果key不存在返回0。SMEMBERS获取集合中所有的元素SMEMBERS key返回一个包含集合key所有元素的列表如果key不存在返回空列表。SRANDMEMBER随机获取集合中的元素SRANDMEMBER key [count]如果没有count参数则执行命令会随机返回集合key中的一个元素。count是正数时如果count小于集合key中元素的个数返回包含count个元素的数组各个元素互不相同如果count大于等于集合key中元素的个数时返回整个集合。count时负数时返回元素可能重复多次的数组数组的长度是count的绝对值。如果没有count参数且key不存在返回null如果没有count参数且key存在返回一个元素如果有count参数且集合key不为空返回一个数组如果有count参数且key为空返回一个空数组。SUNION获取多个集合中的所有元素SUNION key [key...]获取n个集合中所有元素然后作为一个列表返回。这条命令不会存储返回的结果到任何地方。如果这n个集合中的任何一个不存在它会被视为空集合。SDIFF获取多个集合的差集SDIFF key [key...]如果某个集合key不存在则视其为空集合。命令执行后会得到一个差集集合返回值是包含这个集合内所有元素的列表。SDIFFSTORE计算多个集合的差集并保存到目标集合中SDIFFSTORE destination key [key...]于SDIFF命令不同SDIFFSTORE命令计算出差集之后会把这个差集覆盖到目标集合destination上去注意是覆盖也就是说如果destination已存在并且包含元素destination会被覆盖掉原来的元素都没了。命令结束会返回destination中元素的个数。SINTER获取n个集合的交集SINTER key [key...]计算n个结合的交集返回包含这个交集中所有元素的列表。如果某个集合key不存在会被视为空集合。SINTERSTORE计算n个集合的交集并保存到目标集合SINTERSTORE destination key [key...]于SINTER命令不同的是SINTERSTORE命令会把计算出来的交集覆盖到目标集合destination上去注意是覆盖。命令执行完毕会返回目标集合destination中元素的个数。SPOP删除集合中的n个元素SPOP key [n]随机从集合key中删除n个元素。命令执行成功返回被删除的元素的个数如果key不存在返回null。SREM删除集合中的指定元素SREM key member [member...]从集合key中删除元素member该命令会自动忽略集合key中不存在的元素。如果key不是集合类型会报错。命令执行完毕返回被实际删除的元素的个数。【 有序集合Sorted Set命令 】有序集合也是String类型的集合。有序集合中不存在重复的元素这些元素都有一个double类型的分数不同元素的分数可以相同Redis就是根据这个分数对集合中的元素从小到大排序的。有序集合试用哈希表实现一般操作的时间复杂度是O(1)最多可以容纳2^32-1个元素。ZADD向有序集合中添加n个元素ZADD key score member [score member...]向有序集合中添加n个元素每个元素member都对应着一个分数score。ZINCRBY为某元素的分数加上指定的值ZINCRBY key increment member把有序集合key的元素member的分数增加increment。命令执行完毕返回member的新分数。ZCARD获取有序集合中元素的个数ZCARD key当key不存在时返回0。ZCOUNT统计指定分数区间内元素的个数ZOUNT key min maxmin score maxZEXCOUNT统计指定区间内的元素个数ZEXCOUNT key min max以后介绍。青蛙客服系统https://download.csdn.net/download/look4liming/93326820尾