• Redis数据类型及操作命令


    数据类型都针对键值对中的【值】进行定义的。

    1.string类型(字符串类型)

    • get、set、setnx、incr、incrby、decr、decrby

    • incr、incrby、decr、decrby:只能针对整数类型的数据进行使用。

    • incr命令,它是原子操作,用来生成数据库表的自增主键,是非常安全且高效。

    //以下代码不是一个原子性操作,就可能存在线程安全问题。 int i = 10; i++ ; System.out.println(i);

    • incr命令的使用场景:分布式数据库中订单ID的生成。

    2.hash类型(散列类型)

    • hset、hget、hdel、hmget、hmset
    • hash类型和string类型区别
      • hash类型适合于增删改操作。
      • string类型适合于查询操作。string类型存储对象,需要进行对象转换为json串进行存储。

    3.list类型(队列类型)

    • 适合于只对list列表两端进行操作的场景。

    • list类型存储的数据特点:有序可重复(指的是插入顺序,而不是自然排序顺序)。

    • lpush、lpop、rpush、rpop、lrange

    • 可以用来作为消息队列去使用

    • 可以用来实现商品评论表

    key的设计很重要 1、使用谁作为key。使用谁查询方便 2、key的定义,一定要有意义。 3、key的定义举例: item:1 {id:1,name:'zhangsan'} item:pl:1 {} {} {}

    4.set类型(集合类型)

    • set类型存储的数据特点:无序不重复

    • sadd 、srem、smembers

    • 可以进行多集合操作:差集操作、交集操作、并集操作

      • sdiff、sinter、sunion

    5.zset类型(有序集合类型、sortedset)

    • zset类型存储的数据特点:不重复、有序
    • 底层还是一个set集合,但是该集合中给每个member设置一个score,通过score进行排序。
    • zadd、zrem、zrange、zscore
    • 使用场景:销售排行榜
      • 销量作为分数
      • 销售人员或者商品作为member
  • 相关阅读:
    堆(优先队列)模板
    线段树(递归)模板
    快速幂(含二阶方阵类)模板
    ACM/CF赛制getstart模板
    [Andrew Stankevich's Contest#21] Lempel-Ziv Compression
    [NOIP2001]Car的旅行路线
    [NOIP2007] 矩阵取数游戏
    [NOIP2010] 关押罪犯
    [NOIP1999] 拦截导弹
    设计模式之第1章-工厂方法模式(Java实现)
  • 原文地址:https://www.cnblogs.com/Adoni/p/12876192.html
Copyright © 2020-2023  润新知