您的位置:首页 > 数据库 > Redis

redis数据类型and常用操作命令

2020-07-14 05:46 218 查看

一、redis常用命令

  1. keys *
    查看当前所有的键
  2. exists < key >
    判断某个键是否存在
  3. type < key >
    查看键的类型
  4. del < key >
    删除一个键
  5. expire < key > < seconds >
    为一个键设置过期时间,单位秒
  6. ttl < key>
    查看某个键还有多长时间过期,-1表示永不过期,-2表示过期
  7. dbsize
    查看当前库中有多少条信息
  8. flushdb
    清空当前库
  9. flushall
    清空全部库

二、redis的五大数据类型

  1. String数据类型
    String是redis中最基础的数据类型,是二进制安全的,可以包含任何数据,redis中一个String类型的value大小最多可以是512M

    操作字符串的指令:

    get < key >
    查询对应键值

    set < key > < value >
    添加键值对

    append < key > < value >
    将给定的value添加到原值得末尾

    strlen < key >
    获取值的长度

    setnx < key > < value >
    只有key不存在时添加键值对

    incr < key >
    将key中存储的数字值增1(只对数字值操作),如果为空,则设置为1

    decr < key >
    将key中存储的数字值减1(只对数字值操作),如果为空,则设置为-1

    incrby / decrby < key > < 步长 >
    将key中的值自增减,自定义步长(就是一次加减多少)

    mset < key1 > < value1 > < key2 > < value2 > …
    一次添加多个键值对

    mget < key1 > < key2 > …
    一次获取多个键的值

    msetnx < key1 > < value1 > < key2 > < value2 > …
    一次添加若干个不存在的键值对,只有所有键值对不存在的时候添加

    getrange < key > < 起始位置 > < 结束位置 >
    获取key值得字串,起始位置和结束位置都包含

    setrange < key > < 起始位置 > < value >
    替换key值中得字串,从起始位置开始

    setex < key > < seconds > < value >
    添加键值对得同时设置过期时间

    getset < key > < value >
    以新换旧,设置新值得同时获取旧值

  2. List数据类型
    单键多值,就是简单得字符串列表,底层是一个双向链表

    对列表得操作命令:

    lpush / rpush < key > < value1 > < value2 > …
    从左边/右边添加若干个值

    lpop / rpop < key >
    从左边/右边取出一个值,当所有得值被取完,则这个键也将消亡

    rpoplpush < key1 > < key2 >
    从key1得右边取出一个值,添加到key2列表得左边

    lrange < key > < start > < stop >
    按照下表获取若干元素(从左到右)

    lindex < key > < index >
    按照下表获取元素(从左到右)

    llen < key >
    获取列表得长度

    linsert < key > before | after < value > < newvalue >
    在指定得元素前或者后面添加一个元素

    lrem < key > < n > < value >
    从左边删除n个value ,n为0得时候,删除所有得value

  3. set数据类型
    redis中得set对外提供的功能与List类似是一个列表得功能,特殊之处set可以排重,set是一个无序的集合,底层是一个value值为null的hash表,所有添加,删除,查找的复杂度都是o(1)

    对set的操作命令:

    sadd < key > < value1 > < value2 > …
    将一个或多个元素添加到key集合中,如果集合中存在要添加的元素,则忽略该元素

    smembers < key >
    取出集合的所有值

    sismembers < key > < value >
    判断集合key中是否存在value,如果不存在返回0,有则返回1

    scard < key >
    返回key集合中元素的个数

    srem < key > < value1 > < value2 > …
    删除集合中某些元素

    spop < key >
    随机从key集合中取出一个元素

    srandmembers < key > < n >
    随机从集合中取出n个元素,而且不会从集合中删除这些元素

    sinter < key1 > < key2 >
    返回两个集合的交集元素

    sunion < key1 > < key2 >
    返回两个元素的并集元素

    sdiff < key1 > < key2 >
    返回两个集合的差集元素

  4. hash数据类型
    redis中hash是一个键值对集合,适合用于存储对象,类似于Java中的map

    对hash的操作命令:

    hset < key > < field > < value >
    给key集合中添加 一个键值对

    hget < key > < field >
    从key集合中取出键为field的值

    hmset < key > < field1 > < value1 > < field2 > < value2 > …
    向key集合中添加多个键值对

    hexists < key > < field >
    查看名为key的hash表中是否存在field

    hkeys < key >
    查看名为key的hash表中所有field

    hvals < key >
    查看名为key的hash表中所有value

    hgetall < key >
    查看所有的键值

    hincrby < key > < field > < increment >
    为名为key的hash表中field的值加上增量increment

    hsetnx < key > < filed > < value >
    如果名为key的hash表中不存在field,则向其中添加该键值对

  5. zset数据类型
    redis中有序集合zset与普通集合set非常相似,只是zset中的每一个元素比set的中的每一个元素多一个评分,zset就是按照这个评分来实现排序的,而且评分可以重复,因此可以从zset集合中按照评分范围和次序来查找元素。

    对zset的操作命令:

    zadd < key > < score1 > < value1 > < score2 > < value2 > …
    向名为key的zset集合中添加若干个评分为score的value

    zrange < key > < start > < stop > [withscore]
    返回名为key的zset集合中start到stop的元素,如果带上withscore就会连评分一起返回

    zrangebyscore < key > min max [withscore] [limit offset count]
    返回zset集合中min到max(包含min,max)之间的元素

    zrevrangebyscore < key > max min [withscore] [limit offset count]
    这是zrangebyscore的逆序形式

    zincrby < key > < increment > < value >
    为元素的评分加上增量increment

    zrem < key > < value >
    删除指定的value

    zcount < key > < min > < max >
    统计集合中分数区间元素的个数

    zrank < key > < value >
    返回value在集合中的排名,从零开始

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: