Redis数据类型操作命令及其常用命令

(一)Redis基本操作命令

  1. 沟通命令,查看状态

    1. ping 返回 PONG

    2. 解释:输入ping,redis给我们返回PONG,表示redis服务运行正常

  2. 查看当前数据库中key的数目:dbsize
    1. 语法:dbsize
    2. 作用:返回当前数据库的 key 的数量。

    3. 返回值:数字,key的数量

    4. 先查4库的key个数, 再查 0 库的key个数

  3. redis默认使用16个库
    1. Redis默认使用16个库,从0到15。 对数据库个数的修改,在redis.conf文件中databases 16
  4. 切换库命令:select db
    1. 使用其他数据库,命令是 select index

    2. select 5

  5. 删除当前库的数据:flushdb
  6.  redis自带的客户端退出当前redis连接: exit 或 quit

(二)Redis的Key的操作命令

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

    3. 通配符:

    4. * :表示0-多个字符 ,例如:keys * 查询所有的key。
    5. ?:表示单个字符,例如:wo?d , 匹配 word , wood
    6. 例1:显示所有的key
    7. 例2:使用 * 表示0或多个字符

    8. 例3:使用 ? 表示单个字符

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

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

    4. 例1:检查指定key是否存在

    5. 例2:检查多个key

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

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

    4. 例1: 设置红灯的倒计时是5秒

  4. ttl

    1. 语法:ttl key

    2. 作用:以秒为单位,返回key的剩余生存时间(ttl: time to live)

    3. 返回值:

    4. -1 :没有设置key的生存时间, key永不过期。
    5. -2 :key不存在
    6. 数字:key的剩余时间,秒为单位
    7. 例1:设置redlight的过期时间是10, 查看剩余时间

  5. type
    1. 语法:type key
    2. 作用:查看key所存储值的数据类型

    3. 返回值:字符串表示的数据类型

    4. none (key不存在)
    5. string (字符串)
    6. list (列表)
    7. set (集合)
    8. zset (有序集)
    9. hash (哈希表)
    10. 例1:查看存储字符串的key :wood
    11. 例2:查看不存在的key

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

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

    4. 例1:删除指定的key

(三)Redis的5种数据类型

  1. 字符串类型 string
    1. 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据,序列化后的数据,JSON化的对象甚至是一张图片。最大512M。
  2. 哈希类型 hash
    1. Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
  3. 列表类型 list
    1. Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
  4. 集合类型 set
    1. Redis的Set是string类型的无序集合,集合成员是唯一的,即集合中不能出现重复的数据
  5. 有序集合类型 zset (sorted set)
    1. Redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。
    2. 不同的是zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序。

(四)Redis数据类型操作命令

  • 字符串类型(string)

字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据,序列化后的数据,JSON化的对象甚至是一张图片。

  1. 基本命令

    1. set

      1. 将字符串值 value 设置到 key 中

      2. 语法:set key value

      3. 向已经存在的key设置新的value,会覆盖原来的值

    2. get

      1. 获取 key 中设置的字符串值

      2. 语法: get key

      3. 例如:获取 username这个key对应的value

    3. incr

      1. 将 key 中储存的数字值加1,如果 key 不存在,则 key 的值先被初始化为 0 再执行 incr 操作(只能对数字类型的数据操作)

      2. 语法:incr key

      3. 例 1:操作key,值增加 1

      4. 例2:对非数字的值操作是不行的

    4. decr

      1. 将 key 中储存的数字值减1,如果 key 不存在,则么 key 的值先被初始化为 0 再执行 decr  操作(只能对数字类型的数据操作)

      2. 语法:decr key

      3. 例1:不存在的key,初值为0,再减 1 。

      4. 例2:对存在的数字值的 key ,减 1,加2

      5. incr ,decr 在实现关注人数上,文章的点击数上。

    5. append

      1. 语法:append key value

      2. 说明:如果 key 存在, 则将 value 追加到 key 原来旧值的末尾

        如果 key 不存在, 则将key 设置值为 value

      3. 返回值:追加字符串之后的总长度

      4. 例1:追加内容到存在的key

      5. 例2:追加到不存在的key,同set key value

  2. 常用命令

    1. strlen
      1. 语法:strlen key
      2. 说明:返回 key 所储存的字符串值的长度

      3. 返回值:

      4. ①:如果key存在,返回字符串值的长度

      5. ②:key不存在,返回0

      6. 例1:计算存在key的字符串长度

      7. 设置中文 set k4 中文长度 , 按字符个数计算

      8. 例2:计算不存在的key

    2. getrange
      1. 语法:getrange key start end
      2. 作用:获取 key 中字符串值从 start 开始 到 end 结束 的子字符串,包括start和end, 负数表示从字符串的末尾开始, -1 表示最后一个字符

      3. 返回值:截取的子字符串。

      4. 使用的字符串 key: name, value: woshixiaozhazha

      5. 例1: 截取从5到14的字符

      6. 例2:从字符串尾部截取,start ,end 是负数,最后一位是 -1

      7. 例3:超出字符串范围的截取 ,获取合理的子串

    3. setrange
      1. 语法:setrange key offset value
      2. 说明:用value覆盖(替换)key的存储的值从offset开始,不存在的key做空白字符串。

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

      4. 例1:替换给定的字符串

      5. 例2:设置不存在的key

    4. mset
      1. 语法:mset key value [key value…]
      2. 说明:同时设置一个或多个 key-value 对

      3. 返回值: OK

      4. 例1:一次设置多个key, value

    5. mget

      1. 语法:mget key [key …]

      2. 作用:获取所有(一个或多个)给定 key 的值

      3. 返回值:包含所有key的列表

      4. 例1:返回多个key的存储值

      5. 例2:返回不存在的key

  • 哈希类型hash

redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

  1. 基本命令
    1. hset
      1. 语法:hset  hash表的key  field  value
      2. 作用:将哈希表 key 中的域 field 的值设为 value ,如果key不存在,则新建hash表,执行赋值,如果有field ,则覆盖值。

      3. 返回值:

      4. ①如果field是hash表中新field,且设置值成功,返回1

      5. ②如果field已经存在,旧值覆盖新值,返回0

      6. 例1:新的field

      7. 例2:覆盖旧的的field

    2. hget

      1. 语法:hget key field

      2. 作用:获取哈希表 key 中给定域 field 的值

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

      4. 例1:获取存在key值的某个域的值

      5. 例2:获取不存在的field

    3. hmset

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

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

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

      4. 例1:同时设置多个field-value

      5. 使用redis客户端工具查看hash表website的数据结构

      6. 例2:key类型不是hash,产生错误

    4. hmget

      1. 语法:hmget key field [field…]

      2. 作用:获取哈希表 key 中一个或多个给定域的值

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

      4. 例1:获取多个field的值

    5. hgetall

      1. 语法:hgetall key

      2. 作用:获取哈希表 key 中所有的域和值

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

      4. 例1:返回key对应的所有域和值

      5. 例2:不存在的key,返回空列表

      6.  

    6. hdel

      1. 语法:hdel key field [field…]

      2. 作用:删除哈希表 key 中的一个或多个指定域field,不存在field直接忽略

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

      4. 例1:删除指定的field

  2. 常用命令

    1. hkeys

      1. 语法:hkeys key

      2. 作用:查看哈希表 key 中的所有field域

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

      4. 例1:查看website所有的域名称

    2. hvals

      1. 语法:hvals key

      2. 作用:返回哈希表 中所有域的值

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

      4. 例1:显示website哈希表所有域的值

    3. hexists
      1. 语法:hexists key field
      2. 作用:查看哈希表 key 中,给定域 field 是否存在

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

      4. 例1:查看存在key中field域是否存在

  • 列表list

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)

  1. 基本命令
    1. lpush
      1. 语法:lpush key value [value…]
      2. 作用:将一个或多个值 value 插入到列表 key 的表头(最左边),从左边开始加入值,从左到右的顺序依次插入到表头

      3. 返回值:数字,新列表的长度

      4. 例1:将a,b,c插入到mylist列表类型

      5. 在redis客户端工具显示

      6. 插入图示:

      7. 例2:插入重复值到list列表类型

      8. 在redis客户端工具显示

    2. rpush

      1. 语法:rpush key value [value…]

      2. 作用:将一个或多个值 value 插入到列表 key 的表尾(最右边),各个 value 值按从左到右的顺序依次插入到表尾

      3. 返回值:数字,新列表的长度

      4. 例1:插入多个值到列表

      5. 在redis客户端工具显示

    3. lrange

      1. 语法:lrange key start stop

      2. 作用:获取列表 key 中指定区间内的元素,0 表示列表的第一个元素,以 1 表示列表的第二个元素;start , stop 是列表的下标值,也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 start ,stop超出列表的范围不会出现错误。

      3. 返回值:指定区间的列表

      4. 例1:返回列表的全部内容

      5. 例2:显示列表中第2个元素,下标从0开始

    4. lindex

      1. 语法:lindex key index

      2. 作用:获取列表 key 中下标为指定 index 的元素,列表元素不删除,只是查询。0 表示列表的第一个元素,以 1 表示列表的第二个元素;start , stop 是列表的下标值,也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

      3. 返回值:指定下标的元素;index不在列表范围,返回nil

      4. 例1:返回下标是1的元素

      5. 例2:不存在的下标

    5. llen

      1. 语法:llen key

      2. 作用:获取列表 key 的长度

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

      4. 例1:显示存在key的列表元素的个数

  2. 常用命令

    1. lrem

      1. 语法:lrem key count value

      2. 作用:根据参数 count 的值,移除列表中与参数 value 相等的元素, count >0 ,从列表的左侧向右开始移除; count < 0 从列表的尾部开始移除;count = 0移除表中所有与 value 相等的值。

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

      4. 例1:删除2个相同的列表元素

      5. 例2:删除列表中所有的指定元素,删除所有的java

    2. lset

      1. 语法:lset key index value

      2. 作用:将列表 key 下标为 index 的元素的值设置为 value。

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

      4. 例1:设置下标2的value为“c”。

    3. linsert

      1. 语法:linsert key BEFORE|ALFTER pivot value

      2. 作用:将值 value 插入到列表 key 当中位于值 pivot 之前或之后的位置。key不存在,pivot不在列表中,不执行任何操作。

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

      4. 例1:修改列表arch,在值dao之前加入service

      5. 例2:操作不存在的pivot

  • 集合类型set

redis的Set是string类型的无序集合,集合成员是唯一的,即集合中不能出现重复的数据

  1. 基本命令

    1. sadd

      1. 语法:sadd key member [member…]

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

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

      4. 例1:添加单个元素

      5. 例2:添加多个元素

    2. smembers

      1. 语法:smembers key

      2. 作用:获取集合 key 中的所有成员元素,不存在的key视为空集合

      3. 例1:查看集合的所有元素

      4. 例2:查看不存在的集合

    3. sismember

      1. 语法:sismember key member

      2. 作用:判断 member 元素是否是集合 key 的成员

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

      4. 例1:检查元素是否存在集合中

    4. scard

      1. 语法:scard key

      2. 作用:获取集合里面的元素个数

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

      4. 例1:统计集合的大小

      5. 例2:统计不存在的key

    5. srem
      1. 语法:srem key member [member…]

      2. 作用:删除集合 key 中的一个或多个 member 元素,不存在的元素被忽略。

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

      4. 例1:删除存在的一个元素,返回数字 1

      5. 例2:删除不存在的元素

  2. 常用命令

    1. srandmember
      1. 语法:srandmember key [count]
      2. 作用:只提供key,随机返回集合中一个元素,元素不删除,依然在集合中;提供了count时,count 正数, 返回包含count个数元素的集合, 集合元素各不相同。count 是负数,返回一个count绝对值的长度的集合, 集合中元素可能会重复多次。

      3. 返回值:一个元素;多个元素的集合

      4. 例1:随机显示集合的一个元素

      5. 例2:使用count参数, count是正数

      6. 例3:使用count参数,count是负数

    2. spop
      1. 语法:spop key [count]
      2. 作用:随机从集合中删除一个元素, count是删除的元素个数。

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

      4. 例如1:随机从集合删除一个元素

      5. 例2:随机删除指定个数的元素

  • 有序集合类型 zset (sorted set)

redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。

不同的是zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序。

  1. 基本命令

    1. zadd

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

      2. 作用:将一个或多个 member 元素及其 score 值加入到有序集合 key 中,如果member存在集合中,则更新值;score可以是整数或浮点数

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

      4. 例1:创建保存学生成绩的集合

      5. 例2:使用浮点数作为score

    2. zrange

      1. 语法:zrange key start stop [WITHSCORES]

      2. 作用:查询有序集合,指定区间的内的元素。集合成员按score值从小到大来排序。 start, stop都是从0开始。0是第一个元素,1 是第二个元素,依次类推。以 -1表示最后一个成员,-2 表示倒数第二个成员。WITHSCORES选项让score和value一同返回。

      3. 返回值:自定区间的成员集合

      4. 例1:显示集合的全部元素,不显示score,不使用WITHSCORES

      5. 例2:显示集合全部元素,并使用WITHSCORES

      6. 例3:显示第0,1二个成员

      7. 例4:排序显示浮点数的score

    3. zrevrange

      1. 语法:zrevrange key start stop [WITHSCORES]

      2. 作用:返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递减(从大到小)来排列。其它同zrange命令。

      3. 返回值:自定区间的成员集合

      4. 例1:成绩榜

    4. zrem

      1. 语法:zrem key member [member…]

      2. 作用:删除有序集合 key 中的一个或多个成员,不存在的成员被忽略

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

      4. 例1:删除指定一个成员wangwu

    5. zcard

      1. 语法:zcard key

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

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

      4. 例1:查询集合的元素个数

  2. 常用命令

    1. zrangebyscore
      1. 语法:zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]
      2. 作用:获取有序集 key 中,所有 score 值介于 min 和 max 之间(包括min和max)的成员,有序成员是按递增(从小到大)排序。

              min ,max是包括在内 , 使用符号 ( 表示不包括。 min,max 可以使用 -inf  ,+inf表示最小和最大

             limit 用来限制返回结果的数量和区间。

             withscores 显示score 和 value

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

      4. 使用的准备数据

      5. 例1:显示指定具体区间的数据

      6. 例2:显示指定具体区间的集合数据,开区间(不包括min,max)

      7. 例3:显示整个集合的所有数据

      8. 例4:使用limit

      9. 增加新的数据:

      10. 显示从第一个位置开始,取一个元素。

    2. zrevrangebyscore
      1. 语法:zrevrangebyscore key max min  [WITHSCORES ] [LIMIT offset count]
      2. 作用:返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。有序集成员按 score 值递减(从大到小)的次序排列。其他同zrangebyscore

      3. 例1:查询工资最高到3000之间的员工

    3. zcount

      1. 语法:zcount key min max

      2. 作用:返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量

      3. 例1:求工资在3000-5000的员工数量

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值