码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis01——Redis简介


    目录

    NOSQL与SQL的差异

    数据结构:结构化 VS 非结构化

    数据关联:关系型 VS 非关系型

     数据查询:SQL查询 VS 非SQL查询

    事务特性:满足事 VS 没有完全满足

    Redis 简介

    Redis 安装

    Redis 数据结构简介

    Redis 常用命令(基本)

    通用命令:KEYS、DEL、EXISTS、EXPIRE、TTL

    keys 查看符合模板的所有key

    DEL 删除一个指定的key

    EXISTS 判断key是否存在

    Redis中value的常见类型

    String 类型

    key 的层级结构

    Hash 类型

    List 类型

    Set 类型

    SortedSet 类型


    NOSQL与SQL的差异

    关于图中的扩展性

    • 垂直:关系型数据库在一开始设计数据库时,就没有考虑到数据的分布式存储,通俗来说就是没有考虑到把数据拆分成不同的部分,然后保存到不同的地方。比如一开始把主机A当成数据库服务器,那么主机A的性能就直接决定了数据库服务器的性能,只能通过提高主机A的性能来提高数据库的性能(当然,数据库自身也可以通过一些优化手段来提升性能,但是我觉得这是两码事)。个人的理解:比如主机A的存储空间有1G,那么数据库也最多最多能存储1G的数据,如果想存储更多的数据,那么只能通过给主机A增加存储空间来实现(比如给主机A加内存条啥的),而不能选择说把多的数据存到别的地方,进行分布式存储
    • 水平:与垂直相对的,水平是已经考虑到了数据的拆分需求,就是可以把数据拆成多个部分,存储在不同的主机上,实现分布式存储,比如主机A存满了,就存到主机B上。非关系型数据库会通过哈希运算,来判断数据应该存到哪个地方,从而实现数据的拆分,所以对非关系型数据库很容易进行数据扩展

    数据结构:结构化 VS 非结构化

    数据关联:关系型 VS 非关系型

    关系型数据库中数据表之间的联系可以节省数据存储空间

    非关系型数据库的数据之间则没有直接的联系,可能会存储重复的数据,如一个商品信息被多个用户购买,那么这个商品信息就会被存储多次

     数据查询:SQL查询 VS 非SQL查询

    事务特性:满足事 VS 没有完全满足

    关系型数据可以全部满足事务的ACID四个 特性,但是非关系型数据库不能同时满足四个特性

    Redis 简介

    Redis 安装

    Redis 是安装在Linux上的,在个人电脑一般都是在虚拟机里安装Linux,安装教程可以在网上找教程,也可以参考我的这个笔记:虚拟机和Linux安装教程

    然后Redis的安装和基本使用参见视频:安装Redis和三种启动方式、Redis的命令行客户端、Redis的图形化界面

    Redis 数据结构简介

    Redis中的数据是以键值对的方式进行存储,即key-value,其中value有多种不同的类型,适用于不同的应用场景

    这里提供一个Redis的中文版网站:Redis 

    可以在这个网站上查看Redis的各种命令及使用教程

    Redis 常用命令(基本)

    通用命令:KEYS、DEL、EXISTS、EXPIRE、TTL

    命令用小写也可以运行

    如果要查看某个命令的简要说明,可以使用help命令,比如help keys,也可以在网上查看文档

    keys 查看符合模板的所有key

    一般在生产中不建议使用该命令,因为该指令是使用模糊查询实现的,当数据量很大时,查询效率就会很慢,并且由于Redis的命令都是由单线程执行的,所以在keys命令执行完成之前,就会一直阻塞其他命令的执行,因此一般不推荐使用

    DEL 删除一个指定的key

    EXISTS 判断key是否存在

    剩下的不截图了,太费时间啦,如果通过help命令还是不明白命令的用法,就可以百度了,或者直接在上面推荐的中文网站上也能找到,后面的笔记也都简单截个图就行

    Redis中value的常见类型

    String 类型

    为了节省空间,数值类型的字符串在编码的时候会把数字转为二进制的形式作为字节去存储,这样一个字节就可以表示一个非常大的数字。而普通的字符串就是把字符转成对应的字节码去存储,占有的内存更多一点

    key 的层级结构

    Redis中的数据结构都是以键值对的形式存储,即key-value,此时有以下问题

    Hash 类型

    List 类型

     

    Set 类型

    可以通过下面的案例进行练习 

    SortedSet 类型

    上图中的min max都是包含的,即闭区间[min, max],且排名的名次从0开始

    可以通过下面的案例进行练习,这里就不把代码贴出来了

  • 相关阅读:
    期末复习 c
    Java NIO 三大核心(Buffer、Channel、Selector)理解
    MPEG-NTA-NI 甲氧基聚乙二醇-氮川三乙酸-镍
    LeetCode 面试题 04.08. 首个共同祖先
    uniapp集成Android原生sdk
    Java——迷你图书管理器(JDBC+MySQL+Apache DBUtils)
    Java项目上传GitHub,保姆级教程,必看!
    【java】Java项目从开发到部署生产完整流程梳理
    C++ lambda表达式举例
    moudo网络库剖析
  • 原文地址:https://blog.csdn.net/2301_77659011/article/details/140505137
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号