当前位置: 首页 > news >正文

Redis基础知识

本人通过阿里云服务器搭建docker,从docker中拉取redis镜像,进行练习使用

一、Redis介绍

1、Redis

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:

Redis支持的键值数据类型:

  1. 字符串类型 string
  2. 哈希类型 hash(java map)
  3. 列表类型 list
  4. 集合类型 set(无序不重复)
  5. 有序集合类型 sortedset(有序不重复)

Redis的应用场景

  1. 缓存(数据查询、短连接、新闻内容、商品内容等等)
  2. 聊天室的在线好友列表
  3. 任务队列。(秒杀、抢购、12306等等)
  4. 应用排行榜
  5. 网站访问统计
  6. 数据过期处理(可以精确到毫秒
  7. 分布式集群架构中的session分离

Redis可以用在查询一些不经常发生变化的数据:

缓存的思想:

首先从Redis中取数据:

        1、Redis中有:直接返回

        2、Redis中没有:

                (1)从数据库中查询

                (2)将数据放到Redis缓存中

                (3)返回数据

实现缓存选择有很多,可以使用Map集合,但是Map集合只能当前项目使用,但是要做分布式的部署有多台电脑的话Map集合就不合适。

2、NoSQL

NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。

随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

NoSQL数据库的产生就是为了解决大规模数据集合带来的挑战,尤其是大数据应用难题。

web1.0用户只是访问,web2.0指纯动态的网站,以用户人为中心,用户可以发布自己的资源到网络上例如 抖音用户发布视频到抖音上,数据量 非常大,如果使用关系型数据库访问就比较慢。

3、NoSQL和关系型数据库比较

优点:

  1. 成本:NoSQL数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。
  2. 查询速度:NoSQL数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。
  3. 存储数据的格式:NoSQL的存储格式是key、value形式,key是字符串,value支持很多格式,文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。
  4. 扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。

缺点:

  1. 维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。
  2. 不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本。(不像sql那样有标准,学习了redis再学hbase又是全新的)
  3. 不提供关系型数据库对事务的处理。

二、Redis使用

1、Redis软件使用

  1. redis.windows.conf:配置文件
  2. redis-cli.exe:redis的客户端
  3. redis-server.exe:redis服务器端

2、Redis存储

Redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构

value的数据结构:

  1. 字符串类型 string
  2. 哈希类型 hash : map格式
  3. 列表类型 list : linkedlist格式。支持重复元素
  4. 集合类型 set : 不允许重复元素
  5. 有序集合类型 sortedset:不允许重复元素,且元素有顺序

1、字符串类型 string

2、哈希类型 hash : map格式

3、列表类型 list : linkedlist格式

支持重复元素,可以添加元素到列表的头部(左边)或者尾部(右边),可以模拟一个队列的操作

获取:lrange key start end

返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

4、集合类型 set : 不允许重复元素

5、有序集合类型 zset或sortedset

本身是set集合,所以不允许重复元素,而且元素是有序,要求每个元素都会关联一个double类型的分数,

Redis就是通过元素的分数为集合中的成员进行从小到大的排序。

3、通用命令

keys *:查询所有的键

type key: 获取键对应的value的类型

del key:删除指定的key value

http://www.xdnf.cn/news/65089.html

相关文章:

  • 山东大学软件学院创新项目实训开发日志(21)之小问题修复之对话方向修改
  • 工厂模式:简单工厂模式
  • 免费送源码:ava+springboot+MySQL 基于springboot 宠物医院管理系统的设计与实现 计算机毕业设计原创定制
  • 修改IP地址能否精确到地级市的县?——全面解析
  • 第39讲|决策树与作物分布建模:可解释的AI助力农业智能推演
  • WINDOWS下使用命令行读取本地摄像头FFMPEG+DirectShow,ffplay直接播放摄像头数据
  • arkTs:使用Refresh实现下拉刷新功能(含状态提示与动画控制)
  • MySQL知识点讲解
  • n2n 搭建虚拟局域网,实现内网穿透
  • C++计算 n! 中末尾零的数量
  • RIP动态路由(三层交换机+单臂路由)
  • 20250421在荣品的PRO-RK3566开发板的Android13下频繁重启RKNPU fde40000.npu: Adding to iommu gr
  • Java学习路线--自用--带链接
  • win11修改文件后缀名
  • ADB->查看某个应用的版本信息
  • 力扣面试150题--插入区间和用最少数量的箭引爆气球
  • TensorBoard如何在同一图表中绘制多个线条
  • 第 7 篇:总结与展望 - 时间序列学习的下一步
  • k8s集群GPU监控项说明
  • 【人工智能】使用vLLM高性能部署Qwen大语言模型
  • 10天学会嵌入式技术之51单片机-day-2
  • LVGL学习(一)(IMX6ULL运行LVGL,lv_obj_t,lv_obj,size,position,border-box,styles,events)
  • 4·25调价倒计时:SheinTemu美国站价格策略3大关键解读
  • 多路由器通过RIP动态路由实现通讯(单臂路由)
  • Dify忘记管理员密码,重置的问题
  • 数据结构中的各种排序
  • java反射 笔记
  • redis数据类型-位图bitmap
  • Java:多线程
  • C#处理网络传输中不完整的数据流