最新动态
redis 的key带冒号是什么意思 redis冒号的作用
2024-10-31 18:43

  Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

redis 的key带冒号是什么意思 redis冒号的作用

  Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(set)和有序集合(sorted set)等类型。

a)单值缓存

  • SET key value
  • GET key

b)对象缓存

  • SET user:1 value(json格式数据)
  • MSET user:1:name zs user:1:age 18  user:2:name ls user:2:age 20

  采用String类型的对象缓存有两种方式:1.直接缓存整个对象的json;2.采用将key进行分离为user:ID:属性,采用MSET存储,用MGET获取各属性值。

c)分布式锁

  • set product:10001 true ex 10 nx

设置key为product:ID过期时间为10s,如果当前key已经存在就会直接返回nil。

d)计数器

  • INCR aritcle:readcount:{文章id}
  • GET aritcle:readcount:{文章id}

e)分布式系统全局序列号

  • INCRBY orderId 10

a)对象存储

  • HMSET user 1:name zs 1:age 20
  • HMGET user 1:name 1:age

  当需要存储的对象不大时,可以采用固定的key,对应的field为ID:属性,采用HMSET的方式,这样就能将所有的对象存储在同一个key中;

  当需要存储的对象比较大时,可以将key进行动态分离开,例如:设置key为user:序号,序号为0~1000,每个存储对象根据id%序号,确定当前对象分配到哪个key中。

b)购物车

  定义:用户id为key,商品id为field,商品数量为value

  • 添加商品:hset cart:1001 1100 1
  • 添加数量:hincrby cat:1001 1100 1
  • 商品总数:hlen cart:1001
  • 删除商品:hdel cart:1001 1100
  • 获取购物车所有商品:hgetall cart:1001

a)优点

  • 同类数据归类整合储存,方便数据管理
  • 相比String操作消耗内存与cpu更小
  • 相比String存储更省空间(hash的存储结构存在ziplist)

b)缺点

  • 过期功能不能使用在field上,只能用在key上
  • Redis集群架构下不适合大规模使用(容易造成数据倾斜)

a)常用数据结构

  • stack(栈) = LPUSH + LPOP -> FIFO
  • queue(队列) = LPUSH + RPOP
  • Blocking MQ(阻塞队列) = LPUSH + BRPOP

b)微博消息和微信公众号消息

  用户A关注了公众号B和公众号C

  • B发微博,消息ID为1001。LPUSH msg:AID 1001
  • C发微博,消息ID为1002。LPUSH msg:AID 1002
  • A查看微博前五条。LRANGE msg:AID 0 4 

a)微信微博点赞,收藏,标签

  • 点赞。SADD like:{消息ID} {用户ID}
  • 取消点赞。SREM like:{消息ID} {用户ID}
  • 检查用户是否点赞。SISMEMBER like:{消息ID} {用户ID}
  • 获取点赞的用户列表。SMEMBERS like:{消息ID}
  • 获取点赞用户数。SCARD like:{消息ID}

b)微博微信关注模型

  • A关注的人:aSet -> {b,c,d}
  • B关注的人:bSet -> {a,c,d,e}
  • C关注的人:cSet -> {a,b,d,e,f}
  • A和B共同关注的人:SINTER aSet bSet ->{c,d}
  • A关注的人也关注C:A可能认识的人:SDIFF bSet aSet -> {a,e}
  • SISMEMBER cSet b 
  • SISMEMBER cSet d

a)微博热搜榜

  • 点击新闻:ZINCRBY hotNews:210218 1 春节零售餐饮消费超8000亿元  (将当前新闻的分值加1)
  • 展示当日排行前十:ZRERANGE hotNews:210218 0 9 WITHSCORES 
  • 七日搜索榜单计算:ZUNIOnSTORE hotNews:210212-210218 7 hotNews:210212 hotNews:210213 ... hotNews:210218
  • 展示七日排行前七:ZREVRANGE hotNews:210212-210218 0 9 WITHSCORES

 

    以上就是本篇文章【redis 的key带冒号是什么意思 redis冒号的作用】的全部内容了,欢迎阅览 ! 文章地址:http://syank.xrbh.cn/quote/6332.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://kaire.xrbh.cn/ , 查看更多