1、redis默认有16个数据库,可以通过select命令来切换库,通过DbSIZE命令来获取key的个数
2、KEY
KEYS pattern:查找所有符合给定模式 pattern 的key
EXISTS key:检查给定 key 是否存在
EXPIRE key seconds:为给定 key 设置生存时间,当key 过期时(生存时间为0 ),它会被自动删除
MOVE key db:将当前数据库的 key 移动到给定的数据库db 当中
TYPE key:返回 key 所储存的值的类型
3、String:
APPEND key value:如果 key 已经存在并且是一个字符串, APPEND 命令将value 追加到key 原来的值的末尾
STRLEN key:返回 key 所储存的字符串值的长度。
INCR key:将 key 中储存的数字值增一
INCRBY key increment:将 key 所储存的值加上增量increment
DECR key:将 key 中储存的数字值减一
DECRBY key decrement:将key 所储存的值减去减量decrement
GETRANGE key start end:返回 key 中字符串值的子字符串,字符串的截取范围由start 和end 两个偏移量决定(包括 start 和end 在内)。
SETRANGE key offset value:用 value 参数覆写(overwrite)给定key 所储存的字符串值,从偏移量offset 开始。
SETEX key seconds value:将值 value 关联到key ,并将key 的生存时间设为seconds (以秒为单位)。如果key 已经存在, SETEX 命令将覆写旧值,如果不存在则创建
SETNX key value:将 key 的值设为value ,当且仅当key 不存在。若给定的key 已经存在,则 SETNX 不做任何动作。为了避免覆盖
MSET key value [key value ...]:同时设置一个或多个 key-value 对。如果某个给定 key 已经存在,那么 MSET会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用MSETNX命令:它只会在所有给定key 都不存在的情况下进行设置操作。
MSETNX key value [key value ...]:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。即使只有一个给定 key 已存在, MSETNX也会拒绝执行所有给定 key 的设置操作
MGET key [key ...]:返回所有(一个或多个)给定 key 的值。如果给定的 key 里面,有某个key 不存在,那么这个key 返回特殊值 nil 。因此,该命令永不失败
4、Hash
HSET key field value:将哈希表 key 中的域field 的值设为 value 。
HMSET key field value [field value ...]:同时将多个 field-value (域-值)对设置到哈希表 key 中。此命令会覆盖哈希表中已存在的域。
HSETNX key field value:将哈希表 key 中的域field 的值设置为 value ,当且仅当域 field 不存在。若域field 已经存在,该操作无效。如果key 不存在,一个新哈希表被创建并执行HSETNX 命令。
HGET key field:返回哈希表 key 中给定域field 的值。
HGETALL key:返回哈希表 key 中,所有的域和值。在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
HDEL key field [field ...]:删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
HLEN key:返回哈希表 key 中域的数量。
HEXISTS key field:查看哈希表 key 中,给定域field 是否存在。
HKEYS key:返回哈希表 key 中的所有域。
HINCRBY key field increment:为哈希表 key 中的域 field 的值加上增量increment (整数)。增量也可以为负数,相当于对给定域进行减法操作。如果key 不存在,一个新的哈希表被创建并执行HINCRBY命令。如果域field 不存在,那么在执行命令前,域的值被初始化为0 。对一个储存字符串值的域 field 执行HINCRBY 命令将造成一个错误。
HINCRBYFLOAT key field increment:为哈希表 key 中的域 field 加上浮点数增量increment(整数,浮点数均可) 。如果哈希表中没有域field ,那么HINCRBYFLOAT会先将域field 的值设为 0 ,然后再执行加法操作。如果键 key 不存在,那么HINCRBYFLOAT会先创建一个哈希表,再创建域field ,最后再执行加法操作。
当以下任意一个条件发生时,返回一个错误:
域 field 的值不是字符串类型(因为 redis 中的数字和浮点数都以字符串的形式保存,所以它们都属于字符串类型)域 field 当前的值或给定的增量increment 不能解释(parse)为双精度浮点数(double precision floating point number)HINCRBYFLOAT命令的详细功能和HINCRBYFLOAT 命令类似,请查看HINCRBYFLOAT 命令获取更多相关信息。
5、List
LRANGE key start stop:返回列表key 中指定区间内的元素,区间以偏移量start 和stop 指定。下标(index)参数start 和stop 都以0 为底,也就是说,以0 表示列表的第一个元素,以1 表示列表的第二个元素,以此类推。你也可以使用负数下标,以-1 表示列表的最后一个元素,-2 表示列表的倒数第二个元素,以此类推。
LPUSH key value [value ...]:将一个或多个值 value 插入到列表 key 的表头如果有多个value 值,那么各个value 值按从左到右的顺序依次插入到表头:比如说,对空列表mylist 执行命令LPUSHmylistabc。
RPUSH key value [value ...]:将一个或多个值 value 插入到列表 key 的表尾(最右边)。如果有多个value 值,那么各个value 值按从左到右的顺序依次插入到表尾:比如对一个空列表mylist 执行RPUSHmylistabc ,得出的结果列表为abc ,等同于执行命令RPUSHmylista 、 RPUSHmylistb 、RPUSHmylistc。
LPOP key:移除并返回列表 key 的头元素
RPOP key:移除并返回列表 key 的尾元素
LINDEX key index:返回列表 key 中,下标为index 的元素。下标(index)参数start 和 stop 都以 0 为底,也就是说,以0 表示列表的第一个元素,以1 表示列表的第二个元素,以此类推。你也可以使用负数下标,以-1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
LLEN key:返回列表 key 的长度。
LREM key count value
根据参数 count 的值,移除列表中与参数value 相等的元素。
count 的值可以是以下几种:
count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。count = 0 : 移除表中所有与 value 相等的值。LTRIM key start stop:对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,然后重新赋值给列表,不在指定区间之内的元素都将被删除。
RPOPLPUSH source destination:
命令RPOPLPUSH在一个原子时间内,执行以下两个动作:
将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。将 source 弹出的元素插入到列表destination ,作为destination 列表的的头元素。LSET key index value:将列表 key 下标为index 的元素的值设置为value 。
LINSERT key BEFORE|AFTER pivot value:将值 value 插入到列表 key 当中,位于值pivot 之前或之后。当pivot 不存在于列表 key 时,不执行任何操作。当key 不存在时,key 被视为空列表,不执行任何操作。如果key 不是列表类型,返回一个错误。
6、Set
SADD key member [member ...]:将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的member 元素将被忽略
SCARD key:返回集合 key 的基数(集合中元素的数量)。
SMEMBERS key:返回集合 key 中的所有成员。
SREM key member [member ...]:移除集合 key 中的一个或多个 member 元素,不存在的member 元素会被忽略。
SRANDMEMBER key [count]:如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。
从 Redis 2.6 版本开始, SRANDMEMBER命令接受可选的 count 参数:
如果 count 为正数,且小于集合基数,那么命令返回一个包含count 个元素的数组,数组中的元素各不相同。如果count 大于等于集合基数,那么返回整个集合。如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为count 的绝对值。该操作和 SPOP相似,但SPOP将随机元素从集合中移除并返回,而 SRANDMEMBER 则仅仅返回随机元素,而不对集合进行任何改动。
SMOVE source destination member:将 member 元素从 source 集合移动到destination 集合。
SMOVE是原子性操作。如果 source 集合不存在或不包含指定的member 元素,则SMOVE 命令不执行任何操作,仅返回0 。否则, member 元素从 source 集合中被移除,并添加到destination 集合中去。当destination 集合已经包含member 元素时, SMOVE命令只是简单地将source 集合中的member 元素删除。
SDIFF key [key ...]:返回一个集合的全部成员,该集合是所有给定集合之间的差集。
SINTER key [key ...]:返回一个集合的全部成员,该集合是所有给定集合的交集。
SUNION key [key ...]:返回一个集合的全部成员,该集合是所有给定集合的并集。
7、ZSET
ZADD key score member [[score member] [score member] ...]:将一个或多个member 元素及其 score 值加入到有序集 key 当中。如果某个member 已经是有序集的成员,那么更新这个member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。score 值可以是整数值或双精度浮点数。如果key 不存在,则创建一个空的有序集并执行ZADD操作。
ZRANGE key start stop [WITHSCORES]:返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递增(从小到大)来排序。具有相同 score 值的成员按字典序来排列。可以通过使用 WITHSCORES 选项,来让成员和它的 score 值一并返回,返回列表以 value1,score1, ..., valueN,scoreN 的格式表示。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:返回有序集key 中,所有 score 值介于 min 和max 之间(包括等于 min 或 max )的成员。有序集成员按score 值递增(从小到大)次序排列。具有相同score 值的成员按字典序来排列(该属性是有序集提供的,不需要额外的计算)。可选的LIMIT 参数指定返回结果的数量及区间(就像SQL中的SELECT LIMIT offset, count ),注意当offset 很大时,定位 offset 的操作可能需要遍历整个有序集,此过程最坏复杂度为 O(N) 时间。可选的 WITHSCORES 参数决定结果集是单单返回有序集的成员,还是将有序集成员及其 score 值一起返回。
ZREM key member [member ...]:移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。
ZSCORE key member:返回有序集 key 中,成员member 的 score 值。
ZRANK key member:返回有序集 key 中成员member 的排名。其中有序集成员按score 值递增(从小到大)顺序排列。排名以0 为底,也就是说, score 值最小的成员排名为 0
ZREVRANGE key start stop [WITHSCORES]:返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递减(从大到小)来排列。具有相同 score 值的成员按字典序的逆序排列。
ZCOUNT key min max:返回有序集 key 中,score 值在 min 和 max 之间(默认包括score 值等于 min 或 max )的成员的数量。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:返回有序集key 中, score 值介于 max 和min 之间(默认包括等于 max 或 min )的所有的成员。有序集成员按score 值递减(从大到小)的次序排列。具有相同score 值的成员按字典序的逆序排列。
Redis发送订阅:进程中的一种通信模式
SUBSCRIBE :订阅
PUBLISH :发布
先订阅,后发布