一、Redis的Key的操作命令

keys

语法:keys pattern作用: 查找所有符合模式pattern的key. pattern可以使用通配符。
通配符:

  • *:表示0或多个字符,例如:keys * 查询所有的key。
  • ?:表示单个字符,例如:wo?d , 匹配 word , wood
  • [] :表示选择[]内的一个字符,例如wo[or]d, 匹配word, wood, 不匹配wold、woord

exists

语法:exists key [key…]作用: 判断key是否存在

返回值: 整数,存在key返回1,其他返回0。使用多个key,返回存在的key的数量。

redis 多条件查询 redis 查询语句_数据库

move

语法:move key db作用: 移动key到指定的数据库,移动的key在原库被删除。

返回值: 移动成功返回1,失败返回0.

redis 多条件查询 redis 查询语句_nosql_02

ttl

语法:ttl key作用: 查看key的剩余生存时间(ttl: time to live),以秒为单位。
返回值:

  • -1 :没有设置key的生存时间, key永不过期。
  • -2:key不存在

expire

语法:expire key seconds作用: 设置key的生存时间,超过时间,key自动删除。单位是秒。

返回值: 设置成功返回数字 1,其他情况是 0 。

redis 多条件查询 redis 查询语句_redis_03

type

语法:type key作用: 查看key所存储值的数据类型
返回值: 字符串表示的数据类型

  • none (key不存在)
  • string (字符串)
  • list (列表)
  • set (集合)
  • zset (有序集)
  • hash (哈希表)

rename

语法:rename key newkey作用: 将key改为名newkey。当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。

当 newkey 已经存在时, RENAME 命令将覆盖旧值。

redis 多条件查询 redis 查询语句_字符串_04

del

语法:del key [key…]作用: 删除存在的key,不存在的key忽略。

返回值: 数字,删除的key的数量。

redis 多条件查询 redis 查询语句_redis_05

二、字符串类型(string)

字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数
据,序列化后的数据,JSON化的对象甚至是一张图片。
字符串类型的数据操作总的思想是通过key操作value,key是数据标识,value是我们感
兴趣的业务数据。

set

语法: set key value功能: 将字符串值 value 设置到 key 中,如果key已存在,后放的值会把前放的值覆盖掉。

返回值: OK表示成功

redis 多条件查询 redis 查询语句_redis_06


redis 多条件查询 redis 查询语句_redis_07

get

语法:get key功能: 获取 key 中设置的字符串值

返回值: key存在,返回key对应的value;key不存在,返回nil

redis 多条件查询 redis 查询语句_redis_08

append

语法:append key value功能: 如果 key 存在,则将 value 追加到 key 原来旧值的末尾;如果 key 不存在,则将key 设置值为 value

返回值: 追加字符串之后的总长度(字符个数)

redis 多条件查询 redis 查询语句_数据_09

strlen

语法:strlen key **功能:**返回 key 所储存的字符串值的长度

**返回值:**如果key存在,返回字符串值的长度;key不存在,返回0

redis 多条件查询 redis 查询语句_nosql_10

incr

语法:incr key功能: 将 key 中储存的数字值加1,如果 key 不存在,则 key 的值先被初始化为 0 再执行incr操作。

返回值:返回加1后的key值

redis 多条件查询 redis 查询语句_redis_11

decr

语法:decr key功能: 将 key 中储存的数字值减1,如果 key 不存在,则么 key 的值先被初始化为 0 再执行 decr 操作。

返回值: 返回减1后的key值

redis 多条件查询 redis 查询语句_数据_12

incrby

语法:incrby key offset功能: 将 key 所储存的值加上增量值,如果 key 不存在,则 key 的值先被初始化为 0 再执行 INCRBY 命令。

返回值: 返回增量之后的key值。

redis 多条件查询 redis 查询语句_字符串_13

decrby

语法:decrby key offset功能: 将 key 所储存的值减去减量值,如果 key 不存在,则 key 的值先被初始化为 0 再执行 DECRBY 命令。

返回值: 返回减量之后的key值。

redis 多条件查询 redis 查询语句_数据_14

getrange

语法:getrange key startIndex endIndex *功能: *获取 key 中字符串值从 startIndex 开始到 endIndex 结束的子字符串,包括startIndex和endIndex, 负数表示从字符串的末尾开始,-1 表示最后一个字符。

redis 多条件查询 redis 查询语句_数据库_15

setrange

语法:setrange key offsetIndex value功能: 用value覆盖key的存储的值从offset开始。

返回值: 修改后的字符串的长度。

redis 多条件查询 redis 查询语句_字符串_16

setex

语法:setex key seconds value功能: 设置key的值,并将 key 的生存时间设为 seconds (以秒为单位) ,如果key已经存在,将覆盖旧值。

返回值: 设置成功,返回OK。

redis 多条件查询 redis 查询语句_字符串_17

setnx

语法:setnx key value功能: setnx 是 set if not exists 的简写,如果key不存在,则 set 值,存在则不设置值。

返回值: 设置成功,返回1;设置失败,返回0

redis 多条件查询 redis 查询语句_数据_18

mset

语法:mset key value [key value…]功能: 同时设置一个或多个 key-value 对

返回值: 设置成功,返回OK。

redis 多条件查询 redis 查询语句_nosql_19

mget

语法:mget key [key …]功能: 获取所有(一个或多个)给定 key 的值

返回值: 包含所有key的列表,如果key不存在,则返回nil

redis 多条件查询 redis 查询语句_redis_20

msetnx

语法:msetnx key value[key value…] **功能:**同时设置一个或多个 key-value 对,如果有一个key是存在的,则设置不成功。

**返回值:**设置成功,返回1;设置失败,返回0

redis 多条件查询 redis 查询语句_数据_21

三、列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序,左边(头部)、右边(尾部)或者中间都可以添加元素。链表的操作无论是头或者尾效率都极高,但是如果对中间元素进行操作,那效率会大大降低了。
列表类型的数据操作总的思想是通过key和下标操作value,key是数据标识,下标是数据在列表中的位置,value是我们感兴趣的业务数据。

lpush

语法:lpush key value [value…]功能: 将一个或多个值 value 插入到列表 key 的最左边(表头),各个value值依次插入到表头位置。

返回值: 插入之后的列表的长度

redis 多条件查询 redis 查询语句_数据_22

rpush

语法:rpush key value [value…]功能: 将一个或多个值 value 插入到列表 key 的最右边(表尾),各个 value 值按依次插入到表尾。

返回值: 插入之后的列表的长度

redis 多条件查询 redis 查询语句_redis_23

lrange

语法:lrange key startIndex endIndex **功能:**获取列表 key 中指定下标区间内的元素,下标从0开始,到列表长度-1;下标也可以是负数,表示列表从后往前取,-1表示倒数第一个元素,-2表示倒数第二个元素,以此类推;startIndex和endIndex超出范围不会报错。

**返回值:**获取到的元素列表。

redis 多条件查询 redis 查询语句_字符串_24

lpop

语法:lpop key功能: 移除并返回列表key头部第一个元素,即列表左侧的第一个元素

返回值: 列表左侧第一个元素的值;列表key不存在,返回nil

redis 多条件查询 redis 查询语句_nosql_25

rpop

语法:rpop key功能: 移除并返回列表key尾部第一个元素,即列表右侧的第一个元素

返回值: 列表右侧第一个元素的值;列表key不存在,返回nil

redis 多条件查询 redis 查询语句_nosql_26

lindex

语法:lindex key index功能: 获取列表 key 中下标为指定 index 的元素,列表元素不删除,只是查询。

0 表示列表的第一个元素,1 表示列表的第二个元素;

index也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

返回值: key存在时,返回指定元素的值;

Key不存在时,返回nil。

redis 多条件查询 redis 查询语句_数据_27

llen

语法:llen key功能: 获取列表 key 的长度

返回值: 数值,列表的长度;key不存在返回0

redis 多条件查询 redis 查询语句_redis_28

lrem

语法:lrem key count value功能: 根据参数 count 的值,移除列表中与参数 value 相等的元素,

count >0 ,从列表的左侧向右开始移除;

count < 0 从列表的尾部开始移除;

count = 0移除表中所有与 value 相等的值。

返回值: 数值,移除的元素个数

redis 多条件查询 redis 查询语句_字符串_29

ltrim

语法:ltrim key startIndex endIndex功能: 截取key的指定下标区间的元素,并且赋值给key。下标从0开始,一直到列表长度-1;下标也可以是负数,表示列表从后往前取,-1表示倒数第一个元素,-2表示倒数第二个元素,以此类推;startIndex和endIndex超出范围不会报错。

返回值: 执行成功返回ok

redis 多条件查询 redis 查询语句_nosql_30

lset

语法: lset key index value功能: 将列表 key 下标为 index 的元素的值设置为 value。

功能: 设置成功返回ok ; key不存在或者index超出范围返回错误信息。

redis 多条件查询 redis 查询语句_数据_31

linsert

语法:linsert key before/after pivot value功能: 将值 value 插入到列表 key 当中位于值 pivot 之前或之后的位置。key不存在或者pivot不在列表中,不执行任何操作。

返回值: 命令执行成功,返回新列表的长度。没有找到pivot返回 -1, key不存在返回0。

redis 多条件查询 redis 查询语句_字符串_32

三、集合类型(set)

Redis的Set是string类型的无序不重复集合。
集合类型的数据操作总的思想是通过key确定集合,key是集合标识,元素没有下标,只有直接操作业务数据和数据的个数。

sadd

语法: sadd key member [member…]

功能: 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略,不会再加入。

返回值: 加入到集合的新元素的个数(不包括被忽略的元素)。

redis 多条件查询 redis 查询语句_字符串_33

smembers

语法: smembers key

功能: 获取集合 key 中的所有成员元素,不存在的key视为空集合。

返回值: 返回指定集合的所有元素集合,不存在的key,返回空集合。

redis 多条件查询 redis 查询语句_数据库_34

sismember

语法: sismember key member

功能: 判断 member 元素是否是集合 key 的元素

返回值: member是集合成员返回1,其他返回 0 。

redis 多条件查询 redis 查询语句_数据_35

scard

语法: scard key

功能: 获取集合里面的元素个数

返回值: 数字,key的元素个数。其他情况返回 0 。

redis 多条件查询 redis 查询语句_数据_36

srem

语法: srem key member [member…]

功能: 移除集合中一个或多个元素,不存在的元素被忽略。

返回值: 数字,成功移除的元素个数,不包括被忽略的元素。

redis 多条件查询 redis 查询语句_nosql_37

srandmember

语法: srandmember key[count]

功能: 只提供key,随机返回集合中一个元素,元素不删除,依然在集合中;

提供了count时,count 正数, 返回包含count个数元素的集合,集合元素各不重复。count是负数,返回一个count绝对值的长度的集合,集合中元素可能会重复多次。

返回值: 一个元素或者多个元素的集合

redis 多条件查询 redis 查询语句_数据_38

spop

语法: spop key[count]

功能: 随机从集合中删除一个或count个元素。

返回值: 被删除的元素,key不存在或空集合返回nil。

redis 多条件查询 redis 查询语句_字符串_39

smove

语法: smove src dest member

功能: 将 member 元素从src集合移动到dest集合,member不存在,smove不执行操作,返回0,如果dest存在member,则仅从src中删除member。

返回值: 成功返回 1 ,其他返回 0 。

redis 多条件查询 redis 查询语句_字符串_40

sdiff

语法: sdiff key key [key…]

功能: 返回指定集合的差集,以第一个集合为准进行比较,即第一个集合中有但在其它任何集合中都没有的元素组成的集合。

返回值: 返回第一个集合中有而后边集合中都没有的元素组成的集合,如果第一个集合中的元素在后边集合中都有则返回空集合。

redis 多条件查询 redis 查询语句_字符串_41

sinter

语法: sinter key key [key…]

功能: 返回指定集合的交集,即指定的所有集合中都有的元素组成的集合。

返回值: 交集元素组成的集合,如果没有则返回空集合。

redis 多条件查询 redis 查询语句_数据_42

sunion

语法: sunion key key [key…]

功能: 返回指定集合的并集,即指定的所有集合元素组成的大集合,如果元素有重复,则保留一个。

返回值: 返回所有集合元素组成的大集合,如果所有key都不存在,返回空集合。

redis 多条件查询 redis 查询语句_数据_43

四、哈希类型(hash)

Redis的hash 是一个string类型的key和value的映射表,这里的value是一系列的键值对,hash特别适合用于存储对象。
哈希类型的数据操作总的思想是通过key和field操作value,key是数据标识,field是域,value是我们感
兴趣的业务数据。

hset

语法: hset key field value [field value …]

功能: 将键值对field-value设置到哈希列表key中,如果key不存在,则新建哈希列表,然后执行赋值,如果key下的field已经存在,则value值覆盖。

返回值: 返回设置成功的键值对个数。

redis 多条件查询 redis 查询语句_字符串_44

hget

语法: hget key field

功能: 获取哈希表 key 中给定域 field 的值。

返回值: field域的值,如果key不存在或者field不存在返回nil。

redis 多条件查询 redis 查询语句_数据库_45

hmset

语法: hmset key field value [field value…]

功能: 同时将多个 field-value (域-值)设置到哈希表 key 中,此命令会覆盖已经存在的field,hash表key不存在,创建空的hash表,再执行hmset.

返回值: 设置成功返回ok,如果失败返回一个错误。

redis 多条件查询 redis 查询语句_字符串_46

hmget

语法: hmget key field [field…]

功能: 获取哈希表 key 中一个或多个给定域的值

返回值: 返回和field顺序对应的值,如果field不存在,返回nil。

redis 多条件查询 redis 查询语句_数据库_47

hgetall

语法: hgetall key

功能: 获取哈希表 key 中所有的域和值

返回值: 以列表形式返回hash中域和域的值,key不存在,返回空hash.

redis 多条件查询 redis 查询语句_数据_48

hdel

语法: hdel key field [field…]

功能: 删除哈希表 key 中的一个或多个指定域field,不存在field直接忽略。

返回值: 成功删除的field的数量。

redis 多条件查询 redis 查询语句_nosql_49

hlen

语法: hlen key

功能: 获取哈希表 key 中域field的个数

返回值: 数值,field的个数。key不存在返回0.

redis 多条件查询 redis 查询语句_数据_50

hexists

语法: hexists key field

功能: 查看哈希表 key 中,给定域 field 是否存在

返回值: 如果field存在,返回1,其他返回0。

redis 多条件查询 redis 查询语句_数据库_51

hkeys

语法: hkeys key

功能: 查看哈希表 key 中的所有field域列表

返回值: 包含所有field的列表,key不存在返回空列表

redis 多条件查询 redis 查询语句_数据_52

hvals

语法: hvals key

功能: 返回哈希表 中所有域的值列表

返回值: 包含哈希表所有域值的列表,key不存在返回空列表。

redis 多条件查询 redis 查询语句_字符串_53

hincrby

语法: hincrby key field int

功能: 给哈希表key中的field域增加int

返回值: 返回增加之后的field域的值

redis 多条件查询 redis 查询语句_nosql_54

hincrbyfloat

语法: hincrbyfloat key field float

功能: 给哈希表key中的field域增加float

返回值: 返回增加之后的field域的值

redis 多条件查询 redis 查询语句_redis_55

hsetnx

语法: hsetnx key field value

功能: 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在的时候才设置,否则不设置。

返回值: 设值成功返回1,其他返回0.

redis 多条件查询 redis 查询语句_字符串_56

五、有序集合类型(Zset)

Redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。
不同的是zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序。

zadd

语法: zadd key score member [score member…]

功能: 将一个或多个 member 元素及其 score 值加入到有序集合 key 中,如果member存在集合中,则覆盖原来的值;score可以是整数或浮点数.

返回值: 数字,新添加的元素个数.

redis 多条件查询 redis 查询语句_数据库_57

zrange

语法: zrange key startIndex endIndex [WITHSCORES]

功能: 查询有序集合,指定区间的内的元素。集合成员按score值从小到大来排序;startIndex和endIndex都是从0开始表示第一个元素,1表示第二个元素,以此类推; startIndex和endIndex都可以取负数,表示从后往前取,-1表示倒数第一个元素;WITHSCORES选项让score和value一同返回。

返回值: 指定区间的成员组成的集合。

redis 多条件查询 redis 查询语句_数据库_58

zrangebyscore

语法: zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]

功能: 获取有序集 key 中,所有 score 值介于 min 和 max 之间(包括min和max)的成员,有序成员是按递增(从小到大)排序;

使用符号”(“ 表示包括min但不包括max;

withscores 显示score和 value;

limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。

返回值: 指定区间的集合数据

redis 多条件查询 redis 查询语句_nosql_59


redis 多条件查询 redis 查询语句_字符串_60

zrem

语法: zrem key member [member…]

功能: 删除有序集合 key 中的一个或多个成员,不存在的成员被忽略。

返回值: 被成功删除的成员数量,不包括被忽略的成员。

redis 多条件查询 redis 查询语句_字符串_61

zcard

语法: zcard key

作用:获取有序集 key 的元素成员的个数。

返回值: key存在,返回集合元素的个数; key不存在,返回0。

redis 多条件查询 redis 查询语句_nosql_62

zcount

语法: zcount key min max

功能: 返回有序集 key 中, score 值在 min 和 max 之间(包括 score 值等于 min 或 max )的成员的数量。

返回值: 指定有序集合中分数在指定区间内的元素数量。

redis 多条件查询 redis 查询语句_redis_63

zrank

语法: zrank key member

功能: 获取有序集 key 中成员 member 的排名,有序集成员按 score 值从小到大顺序排列,从0开始排名,score最小的是0 。

返回值: 指定元素在有序集合中的排名;如果指定元素不存在,返回nil。

redis 多条件查询 redis 查询语句_字符串_64

zscore

语法: zscore key member

功能: 获取有序集合key中元素member的分数。

返回值: 返回指定有序集合元素的分数。

redis 多条件查询 redis 查询语句_数据_65

zrevrank

语法: zrevrank key member

功能: 获取有序集 key 中成员 member 的排名,有序集成员按 score 值从大到小顺序排列,从0开始排名,score最大的是0 。

返回值: 指定元素在有序集合中的排名;如果指定元素不存在,返回nil。

redis 多条件查询 redis 查询语句_字符串_66

zrevrange

语法: zrevrange key startIndex endIndex [WITHSCORES]

功能: 查询有序集合,指定区间的内的元素。集合成员按score值从大到小来排序;startIndex和endIndex都是从0开始表示第一个元素,1表示第二个元素,以此类推; startIndex和endIndex都可以取负数,表示从后往前取,-1表示倒数第一个元素;WITHSCORES选项让score和value一同返回。

返回值: 指定区间的成员组成的集合。

redis 多条件查询 redis 查询语句_redis_67

zrevrangebyscore

语法: zrevrangebyscore key max min [WITHSCORES ] [LIMIT offset count]

功能: 获取有序集 key 中,所有 score 值介于 max 和 min 之间(包括max和min)的成员,有序成员是按递减(从大到小)排序;

使用符号”(“ 表示不包括min和max;

withscores 显示score和 value;

limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。

返回值: 指定区间的集合数据

redis 多条件查询 redis 查询语句_nosql_68