Redis常用数据类型

# Redis

简介

Nosql:非关系型数据库,作为关系型数据库的补充

作用:应对基于海量用户和海量数据前提下的数据处理问题

特征:

  • 数据间没有必然的关联联系

  • 内部采用单线程机制进行工作

  • 可扩容,可伸缩

  • 大数据量下高性能

  • 高可用

  • 灵活的数据模型

    • string
    • list
    • set
    • hash
    • Zset

应用:

  • 热点数据存储
  • 任务队列:秒杀、抢购、购票排队
  • 即时信息查询
  • 时效性
  • 分布式数据共享
  • 消息队列
  • 分布式锁

安装

image-20211217151841850

基本操作

string

数据未获取到 显示nil

key的命名约定

  • image-20211217160136935

基本操作

  • 添加 set
  • 添加多个mset
  • 获取 get
  • 获取多个 mget
  • 删除 del
  • 获取数据字符个数 strlen

扩展操作

  • 追加信息到原始信息后面 append key value
  • 设置数据增加(可以用于控制数据库表主键id)
    • 自增加一 incr key
    • 增加指定范围 incrby key increment(指定范围)
    • 增加小数 incrbyfloat
  • 设置数据减少
    • 减少一 decr key
    • 减少指定范围 ncrby key increment(指定范围)
  • 设置数据生命周期 多次设置第二次的会覆盖第一次的
    • setex key seconds value
    • psetex key milliseconds value

hash类型

定义

  • 对一系列存储的数据进行编组,方便管理(存储对象信息)

  • 存储结构:一个存储空间保持多个键值对

    image-20211217160517112

基本操作

  • 添加 hset key field value
  • 获取 hget key field
  • 获取所有 hgetall key
  • 删除 key field1( field2)

扩展操作

  • 获取哈希表中所有的字段名或字段值
    • hkeys key (相当于获取所有field)
    • hvals(相当于获取所有value)
  • 设置指定字段的数值数据
    • hincrby key field increment
    • hincrbyfloat key field increment

注意事项

  • hash类型下的value只能存储字符串 不存在嵌套现象
  • 取数据少用hgetall

小例子 实现购物车

image-20211217163159225

list 类型

简介

  • 数据存储 (底层用双向链表实现)
  • 适用于有序场景 例如消息队列,展示最新新闻按照时间顺序展示,解决多路消息的汇总合并按照时间顺序输出

基本操作

  • image-20211217165343983

拓展操作

  • image-20211217165954202
  • image-20211217172646103
    • key 删哪个列表
    • count 删几个
    • value 删什么内容

注意事项

  • 保存的都是string类型
  • 具有索引概念,但是通常以队列或栈的操作方式进行数据操作
  • 可以对数据进行分页操作,第一页用list加载,后面的再从数据库中获取

set类型

简介

  • 可以存储大量数据,在查询方面提供更高效率,list是链表,不便于查询
  • 与hash存储结构完全相同,但是仅存储键,不存储值
  • 值不允许重复
  • image-20211217175016567

基本操作

  • image-20211217174818177

    image-20211217174918744

  • 扩展操作

  • 用于同类信息关联搜索,显示共同关注,进行喜好推荐

    image-20211217175320956

    image-20211217175711551

Zset

简介

image-20211217181751673

基本操作

image-20211217181828323

image-20211217182305614

posted @ 2021-12-30 18:07  尽深  阅读(28)  评论(0编辑  收藏  举报