IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis总结 -> 正文阅读

[大数据]Redis总结

redis版本升级说明

接下来内容概述:

  • 安装redis6.0.8
  • redis传统五大数据类型的落地应用
  • 知道分布式锁吗?有哪些实现方案?你谈谈对redis分布式锁的理解,删key的时候有什么问题?
  • redis缓存过期淘汰策略
  • redis的LRU算法简介

安装redis6.0.8:

  • Redis官网
  • Redis中文网
  • 安全Bug按照官网提示,升级成为6.0.8
  • 进入Redis命令行,输入info,返回关于Redis服务器的各种信息(包括版本号)和统计数值。

redis两个小细节说明

redis基本类型:

  • string
  • list
  • set
  • zset(sorted set)
  • hash

其他redis的类型

  • bitmap
  • HyperLogLogs
  • GEO
  • Stream

备注

  • 命令不区分大小写,而key是区分大小写的
  • help @类型名词

Redis各种数据类型使用场景

string类型使用场景

最常用

  • SET key value
  • GET key

同时设置/获取多个键值

  • MSET key value [key value…]
  • MGET key [key…]

数值增减

  • 递增数字 INCR key(可以不用预先设置key的数值。如果预先设置key但值不是数字,则会报错)
  • 增加指定的整数 INCRBY key increment
  • 递减数值 DECR key
  • 减少指定的整数 DECRBY key decrement

获取字符串长度

  • STRLEN key

分布式锁

  • SETNX key value
  • SET key value [EX seconds] [PX milliseconds] [NX|XX]
  • EX:key在多少秒之后过期
  • PX:key在多少毫秒之后过期
  • NX:当key不存在的时候,才创建key,效果等同于setnx
  • XX:当key存在的时候,覆盖key

应用场景

  • 商品编号、订单号采用INCR命令生成
  • 是否喜欢的文章

hash类型使用场景

Redis的Hash类型相当于Java中Map<String, Map<Object, Object>>

一次设置一个字段值 HSET key field value

一次获取一个字段值 HGET key field

一次设置多个字段值 HMSET key field value [field value …]

一次获取多个字段值 HMGET key field [field …]

获取所有字段值 HGETALL key

获取某个key内的全部数量 HLEN

删除一个key HDEL

应用场景

- 购物车早期,当前小中厂可用

  • 新增商品 hset shopcar:uid1024 334488 1
  • 新增商品 hset shopcar:uid1024 334477 1
  • 增加商品数量 hincrby shopcar:uid1024 334477 1
  • 商品总数 hlen shopcar:uid1024
  • 全部选择 hgetall shopcar:uid1024

list类型使用场景

向列表左边添加元素 LPUSH key value [value …]

向列表右边添加元素 RPUSH key value [value …]

查看列表 LRANGE key start stop

获取列表中元素的个数 LLEN key

应用场景

- 微信文章订阅公众号

  • 大V作者李永乐老师和ICSDN发布了文章分别是11和22

  • 阳哥关注了他们两个,只要他们发布了新文章,就会安装进我的List
    lpush likearticle:阳哥id1122

  • 查看阳哥自己的号订阅的全部文章,类似分页,下面0~10就是一次显示10条
    lrange likearticle:阳哥id 0 10

set类型使用场景

添加元素 SADD key member [member …]

删除元素 SREM key member [member …]

获取集合中的所有元素 SMEMBERS key

判断元素是否在集合中 SISMEMBER key member

获取集合中的元素个数 SCARD key

从集合中随机弹出一个元素,元素不删除 SRANDMEMBER key [数字]

从集合中随机弹出一个元素,出一个删一个 SPOP key[数字]

集合运算

集合的差集运算A - B

  • 属于A但不属于B的元素构成的集合
  • SDIFF key [key …]

集合的交集运算A ∩ B

  • 属于A同时也属于B的共同拥有的元素构成的集合
  • SINTER key [key …]

集合的并集运算A U B

  • 属于A或者属于B的元素合并后的集合
  • SUNION key [key …]

应用场景

微信抽奖小程序

  • 用户ID,立即参与按钮
    SADD key 用户ID
  • 显示已经有多少人参与了、上图23208人参加
    SCARD key
  • 抽奖(从set中任意选取N个中奖人)
    SRANDMEMBER key 2(随机抽奖2个人,元素不删除)
    SPOP key 3(随机抽奖3个人,元素会删除)

微信朋友圈点赞

  • 新增点赞
    sadd pub:msglD 点赞用户ID1 点赞用户ID2
  • 取消点赞
    srem pub:msglD 点赞用户ID
  • 展现所有点赞过的用户
    SMEMBERS pub:msglD
  • 点赞用户数统计,就是常见的点赞红色数字
    scard pub:msgID
  • 判断某个朋友是否对楼主点赞过
    SISMEMBER pub:msglD用户ID

微博好友关注社交关系

  • 共同关注:我去到局座张召忠的微博,马上获得我和局座共同关注的人
    sadd s1 1 2 3 4 5
    sadd s2 3 4 5 6 7
    SINTER s1 s2
  • 我关注的人也关注他(大家爱好相同)

QQ内推可能认识的人

sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7
SINTER s1 s2
SDIFF s1 s2
SDIFF s2 s1

zset类型使用场景

向有序集合中加入一个元素和该元素的分数

添加元素 ZADD key score member [score member …]

按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素 ZRANGE key start stop [WITHSCORES]

获取元素的分数 ZSCORE key member

删除元素 ZREM key member [member …]

获取指定分数范围的元素 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

增加某个元素的分数 ZINCRBY key increment member

获取集合中元素的数量 ZCARD key

获得指定分数范围内的元素个数 ZCOUNT key min max

按照排名范围删除元素 ZREMRANGEBYRANK key start stop

获取元素的排名

从小到大 ZRANK key member

从大到小 ZREVRANK key member

应用场景

根据商品销售对商品进行排序显示

  • 定义商品销售排行榜(sorted set集合),key为goods:sellsort,分数为商品销售数量。
    商品编号1001的销量是9,商品编号1002的销量是15 - zadd goods:sellsort 9 1001 15 1002
    有一个客户又买了2件商品1001,商品编号1001销量加2 - zincrby goods:sellsort 2 1001
    求商品销量前10名 - ZRANGE goods:sellsort 0 10 withscores

抖音热搜

  • 点击视频
    ZINCRBY hotvcr:20200919 1 八佰
    ZINCRBY hotvcr:20200919 15 八佰 2 花木兰
  • 展示当日排行前10条
    ZREVRANGE hotvcr:20200919 0 9 withscores
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:15:00  更:2022-04-06 23:18:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:52:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码