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常见的数据结构定义为:

??Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

五大数据类型(其余的api到中文官网看)

String(字符串)

基本介绍

??String可以说非常常见,程序员接触redis最先用到的应该就是String类型,使用该类型作为缓存。需要注意的是String类型的Value值可以是数字。常见使用场景是计数器,对象缓存等

命令实践

在这里插入图片描述
在这里插入图片描述

使用incr与decr命令实现自增与自减,实际场景用做浏览量等
在这里插入图片描述
在这里插入图片描述

字符串范围 range
在这里插入图片描述
替换,这里替换需要需要规则。
在这里插入图片描述

setex(set with expire) 设置过期时间
setnx(set if not exist) 不存在再设置(在分布式锁中会经常使用!)
在这里插入图片描述
批量创建key-value,批量获取key-value
在这里插入图片描述

在这里插入图片描述

重点
设置一个对象:set user:1 {name:zhangsan,age:3},设置一个user:1对象,值为json字符串来保存一个对象。
这里的设计是user:{id}:{filed},这样的设计在redis中是完全ok的了
在这里插入图片描述

先get后set 组合命令,可以用于更新操作
在这里插入图片描述

List(列表)

基本介绍

  1. 它实际是一个链表,before–Node–after
  2. 如果key不存在,创建新的链表;如果key存在,新增内容
  3. 如果移除了所有值,链表变空了,也代表不存在
  4. 在两边插入或修改值效率最高,中间元素,相对会低一点(LinkedList头插与尾插效率更高)
  5. 可以实现消息排队!消息队列 lpush rpop lpush rpop
  6. 在redis里面,list可以实现为栈,队列,阻塞队列
  7. 在String命令基础上,所有的list命令都以L开头代表list

命令实践

插入
在这里插入图片描述

在这里插入图片描述

移除元素 lpop,rpop
在这里插入图片描述

通过下标取值,第一个下标是0
在这里插入图片描述

查看list的长度 llen
在这里插入图片描述

移除指定的值,取关
在这里插入图片描述

String中有个trim方法,redis中有个ltrim命令可以实现截断
在这里插入图片描述

?

rpoplpush
在这里插入图片描述

lset {key} {index} {value},给list的某个索引位置设置值,替换值,是一个更新的操作。如果当前所以不存在就会失败
在这里插入图片描述

linsert,通过before/after来控制插入的位置
在这里插入图片描述

?

Set

基本介绍

  1. set的值是无序不重复
  2. 在String命令基础上,所有的命令都以s开头代表set

命令实践

添加元素,查询元素,判断元素是否存在
在这里插入图片描述

获取集合中的某个元素,移除set集合中的指定元素
在这里插入图片描述

srandmexx 获取一个随机值
在这里插入图片描述

随机移除一个key:spop
在这里插入图片描述

将一个指定的值移动到另一个集合
在这里插入图片描述

  • 差集:sdiff
  • 交集:sinter
  • 并集:sunion

脉脉,微博,微信等的共同关注,二度人脉等可以通过交并补来实现!
在这里插入图片描述

Hash

基本介绍

hash适合存储对象,经常变动的信息。String适合存储字符串即json 。redis的类型指的是后面的value。也就是说hash类型就是Map集合,它的value就是一个键值对相当于key:map。key本质和String类型没有太大区别,还是一个简单的String。

命令实践

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Zset

基本介绍

  • zset是在set的基础上多了一个score,类似于排序的东西
  • 在String命令基础上,所有的list命令都以z开头代表zet

命令实践

添加一个元素,添加多个元素
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用场景:set排序 存储班级成绩表,工资表排序!

三种特殊类型

geospatial

基本介绍

geo底层实现原理是Zset,可以使用Zset命令来操作geo
在这里插入图片描述

命令实践

geoadd

  • 作用:添加地理位置
  • 规则:经度是有范围的,两极是无法直接添加(具体范围官网有),一般是程序一次性写入
  • 当坐标超出命令时,会报错

在这里插入图片描述

geopos:获得坐标值,可以取多个也可以取一个

在这里插入图片描述

geodist:查看两点之间的距离,有一点不存在就会有问题,可以指定单位,具体看官网

在这里插入图片描述

georadius: 以给定的经纬度为中心,找出指定半径内的元素(必须在key中)

在这里插入图片描述

georadiusbymember: 查询指定元素周围元素(类似于附近场馆)

在这里插入图片描述

geohash:返回一个或多个元素的geohash表示,该命令返回11位

在这里插入图片描述

?

hyperloglog

基础知识

基数指的是不重复的元素,比如a集合是1,2,3,b几个是1,2.那么基数就是2,官方明确说明这里有误差,但是误差是可以接受的

简介

Redis2.8.9就有Hyperloglog这个数据结构,它是一种基数统计的算法。优点在于它占用的内存是固定的,2的64次方个元素,只需要12k的内存!相比于使用set(元素是唯一的)来实现一些功能,从内存角度,它是首选!

实际场景

网页的UV统计(一个人访问多次,也只算一次):

  • 传统方式:set保存用户的id,然后统计set中的元素数量即可。这个方式耗内存太大,我们的问题是要计数,不是存放数据。
  • redis:有0.81%的容错率,是可以接受的。

命令练习截图

在这里插入图片描述

bitmap

基础知识

Bitmaps是位图,是一种数据结构!都是操作二进制位来进行记录,就只有0跟1两个状态!!
应用场景:统计用户信息,活跃,不活跃!登录,未登录!打卡,未打卡!两个状态的,都可以使用Bitmaps!

命令练习截图

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:24:30  更:2021-11-22 12:24:54 
 
开发: 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 6:44:46-

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