【学习记录】macOS的Redis安装及基本使用

  • 一. Redis的安装与启动
  • 二. 简单使用
    • ① 尝试插入第一个key-value
    • ② Redis的数据类型与基本使用
      • 字符串
      • 列表
      • 字典(哈希表)
      • 集合
      • 有序集合
  • 三. 杂乱无章的笔记

一. Redis的安装与启动

打开终端,输入以下命令即可安装

brew install redis

安装成功后, 输入以下命令通过brew来启动Redis

brew services start redis

接下来启动服务端

redis-cli

二. 简单使用

更多命令可到菜鸟教程里查询。这个模块只是对这些结构的简单描述。

① 尝试插入第一个key-value

插入键值对 114514 - tiansuo

set 114514 tiansuo

而后通过键值114514即可获得对应值tiansuo

get 114514

② Redis的数据类型与基本使用

Redis中有五种数据类型:

  • 字符串 String
  • 列表 List
  • 字典 Hash
  • 集合 Set
  • 有序集合 Sorted Set

字符串

感觉和C++,JAVA等语言里的String大同小异。
下列举两个命令例子

  • append 命令:拓展字符串 (append key value)
append 114514 haoer

输入这行命令后,键值对更新成 114514 - tiansuohaoer

  • type命令:获取键的数据类型的值
type 114514 // 返回 String

列表

感觉像是数组和栈、队列的缝合怪。
下标从0开始,有如下功能:

  • 添加列表:lpush / rpush listName value, l / r分别代表从左/右开始添加元素
  • 弹出元素:lpop / rpop
  • 由下标获取值:lindex key index
  • 获取范围下标内的所有值:lrange key start stop 如 lrange listOne 0 3

字典(哈希表)

可以由以下这个初始化流程来了解字典的结构

hset person name jack // 新建一个名为person的字典,其中一个键值name对应值jack
hset person age 20    // 在字典person中,新增一个键值age对应值20
hgetall person        // 获取当前字典person的所有键值与值
hkeys person          // 获取当前字典person的所有键值
hvals person          // 获取当前字典person的所有值

集合

很熟悉的一个结构了, 无非就是集合的交并差。

有序集合

增加一个Score属性,用来对集合成员进行一个排序。
集合成员唯一,但是分数不唯一,即不同成员可以分数相同。

三. 杂乱无章的笔记

笔记

  1. Redis有着更为复杂的数据结构并且提供对他们的原子性操作,数据结构对程序员透明,无需进行额外的抽象
  2. Redis运行在内存中但是可以持久化到磁盘,进行高速读写时需要权衡内存
  3. string 是 redis 最基本的类型,是二进制安全的,可以包含任何数据。比如jpg图片或者序列化的对象。
  4. DEL keyname 用于删除

  1. 客户端启动:本地:redis-cil 远程:redis-cli -h host -p port -a password

    eg: redis-cli -h 127.0.0.1 -p 6379 -a “mypass”

    订阅:SUBSCRIBE name

    发送:PUBLISH name “message”

    事务

    Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:

    • 批量操作在发送 EXEC 命令前被放入队列缓存。
    • 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
    • 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。

    一个事务从开始到执行会经历以下三个阶段:

    • 开始事务。
    • 命令入队。
    • 执行事务。
    redis 127.0.0.1:6379> MULTI // 以 MULTI 开启一个事务
    OKredis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days"
    QUEUEDredis 127.0.0.1:6379> GET book-name
    QUEUEDredis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series"
    QUEUEDredis 127.0.0.1:6379> SMEMBERS tag
    QUEUEDredis 127.0.0.1:6379> EXEC // 一并执行事务中的所有命令,此处事务不具有原子性,命令有
    1) OK
    2) "Mastering C++ in 21 days"
    3) (integer) 3
    4) 1) "Mastering Series"2) "C++"3) "Programming"
    
  2. Redis 发布订阅:消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。

    而 Redis Stream 提供了消息的持久化和主备复制功能

  3. NoSql:解决高并发、高可用、高可扩展,大数据存储等一系列问题而产生的数据库解决方案.

    叫非关系型数据库,它的全名Not only sql。它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。

    分类:

    • 键值(Key-Value)存储数据库 :典型应用: 内容缓存,主要用于处理大量数据的高访问负载。 数据模型: 一系列键值对

      优势: 快速查询 劣势: 存储的数据缺少结构化

    • 列存储数据库 典型应用:分布式的文件系统

    • 文档型数据库,比如 MongoDB ,典型应用:Web应用(与Key-Value类似,Value是结构化的)

    • 图形(Graph)数据库 ,图结构

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

  5. Redis 持久化方案

    • Rdb 方式: Redis 默认的方式,redis 通过快照方式将数据持久化到磁盘中。

      一旦redis非法关闭,那么会丢失最后一次持久化之后的数据。

    • Aof 方式:操作一次 redis 数据库,则将操作的记录存储到 aof 持久化文件中。

  6. Redis 主从复制:持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中。

    但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障,如下图:

    主redis中的数据有两个副本(replication)即从redis1和从redis2,即使一台redis服务器宕机其它两台redis服务也可以继续提供服务

    主redis中的数据和从redis上的数据保持实时同步,当主redis写入数据时通过主从复制机制会复制到两个从redis服务上。

    只有一个主redis,可以有多个从redis。

    主从复制不会阻塞master,在同步数据时,master 可以继续处理client 请求

    主机一旦发生增删改操作,那么从机会将数据同步到从机中. 从机不能执行写操作

    一个redis可以即是主又是从,如下图:

【学习记录】macOS的Redis安装及基本使用相关推荐

  1. [学习记录] macOS下的Nginx安装 Nginx基本知识

    [学习记录] macOS下的Nginx安装 && Nginx基本知识 一. 安装相关 1. 安装:直接通过brew安装即可 2. 启动: 3. 成功运行判断: 4. 改端口号:由于80 ...

  2. 大数据之spark学习记录二: Spark的安装与上手

    大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...

  3. Redis学习(2)-redis安装

    安装redis需要先从官网下载的源码进行编译,编译依赖GCC环境,如果没有GCC环境,需要安装GCC. yum install gcc-c++ 步骤1:上传 将Windows下下载的压缩文件上传Lin ...

  4. Redis学习 - NoSQL简介、redis安装、redis基础知识、数据类型、持久化、订阅发布、主从复制、哨兵模式、缓存击穿和雪崩

    学习视频地址:https://www.bilibili.com/video/BV1S54y1R7SB 完结撒花,感谢狂神 文章目录 1. NoSQL 1.1 单机Mysql的演进 1.2 当今企业架构 ...

  5. g2o学习记录(1)安装和运行其下面的unit_test项目

    文章目录 前言 安装 依赖项 运行unit_test 结语 前言   最近对新版本的g2o进行学习,相关的安装我这里就稍微说一下,以作记录,最主要的倒是它的unit_test的那个项目测试,调试得我真 ...

  6. Redis windows学习(一)——redis安装和基础使用

    前言 最近做项目时,打算用Redis做缓存服务器,于是研究了一下Redis.由于项目是在windows下,也不打算开个虚拟机,所以就直接安装在windows下.虽然,Redis官网并不提供window ...

  7. jupyter学习记录(一)——安装模块与导入图片

    想要分析每张图片的色调.饱和度和亮度,并将数值保存在excel表格中.从基础开始学习,第一篇文章目标在于载入图片. 已有环境:win10 x64,python3.7,conda4.5.11, 一.安装 ...

  8. 芒果数据库(MongoDB)学习记录(一)——安装

    一.安装 MongoDB的官网是: http://www.mongodb.org/ 1.解压mongodb-win32-i386-2.4.8 ,创建路径D:\mongodb ,将解压后的Bin文件Co ...

  9. 【学习记录】Origin8.0 安装流程(附赠所需安装包以及免安装包)

    课程需要,学习Origin图软件应用,起初安装了适合64位系统的Origin2017,发现和上课内容不太适配,转为卸载了转为安装Origin8.0,一下简述我的安装过程 ①Originpro80(适合 ...

最新文章

  1. XenMobile 8.7对iOS7.1 企业级MDM管理功能带来哪些扩展?
  2. 包含min函数的栈 大坑
  3. 《第一行代码》学习笔记18-广播接收器Broadcast_Receiver(1)
  4. python反编译exe_实战 Python3.7+64位 Exe 反编译
  5. mysql获取离当前数据最近的数据_Mysql 获取最近数据信息
  6. 屏幕坏了无法使用计算机调试,vivo手机屏幕坏了连接电脑没反应怎么办
  7. Vue使用阿里矢量图标库
  8. unity显示no camera rendering
  9. 复旦提出M2TR:首个多模态多尺度Transformer
  10. 如何在windows开启UAC(用户账号控制)的情况下优雅的管理程序的权限申请方案(一)
  11. 原生小程序 之引入 icon字体图标
  12. 《钻石王牌》:热血青春·棒球1号位
  13. 数据结构与算法 — 约瑟夫问题(Josephu)
  14. 吉软-java-第八次作业
  15. DM8 roll.dbf损坏修复
  16. 联想昭阳K22连不上远程桌面
  17. codeforce C. Ehab and Path-etic MEXs
  18. Python脚本一键找出哪些微信好友删了你(附源码)
  19. L2-constrained Softmax Loss for Discriminative Face Verification
  20. 2022第23届广州国际热处理、工业炉展览会

热门文章

  1. admin select 2 异步_解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
  2. 怎么查看kudu的版本_apache版本kudu kudu-impala安装方法
  3. shell中执行某条语句失败能不能重复执行_如何理解Mysql中的事务隔离级别?
  4. java 设计方法_java 中如何处理设计一个方法
  5. 反弹式木马原理_汽车避震器的原理与改装问题
  6. 【matlab】画图的文字调整大小
  7. 为什么有些softmax公式需要减去输入中的最大值
  8. python+OpenCV图像处理(六)图像平滑与滤波
  9. 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码
  10. 数字图像处理-1.图像获取