Redis 扫盲

Redis扫盲

非关系型数据库分类:

  • 键值存储数据库:主要会使用到一个 Hash 表,这个表有一个特定的键和一个指针指向特定的数据,Redis
  • 列存储数据库:应对分布式存储的海量数据,键仍然存在,但是他们的特点指向了多个列,HBase
  • 文档型数据库:数据模型是版本化的文档,半结构化的文档以特定的格式存储,文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,比键值数据库的查询效率更高,MangoDB
  • 图形数据库:使用灵活的图形模型,扩展到多个服务器

非关系型数据库特点:

  • 数据模型比较简单
  • 灵活性更强
  • 对数据库性能要求更高
  • 不需要高度的数据一致性
  • 对于给定 Key,比较容易映射复杂的环境

Redis简介:

优点:

  • 以 Key-Value 形式存储
  • 对数据高并发读写
  • 海量数据的高效存储和访问
  • 数据的可扩展性高可用性

缺点:

  • redis (ACID处理非常简单)
  • 无法做到太复杂的关系数据库模型

数据结构:

  • String,哈希,链表,集合,有序集合
  • 为了保证持久化数据不丢失,
  • RDB,周期性的把内存的数据,刷到硬盘上
  • AOF,实时记录日志

可扩展性分析:

  • 一般都是主从服务器,主服务器可读可写,从服务器只读
  • 扩展性分为垂直扩展水平扩展
  • 水平扩展:主服务器上再扩展多台机器
  • 水平扩展:主服务器的硬件配置提升

高可用性分析:

  • 单主节点挂掉,系统就会瘫痪
  • 防止主节点崩溃,可以同时并行运行多个主节点,作为替补

可靠性分析:

  • 可靠性,无论什么情况,数据不丢失
  • 防止数据丢失,同步数据到硬盘

Redis 应用三种形式:

  • 主从

    • 一台节点读写,两台可读
  • 哨兵
    • 可能会衍生出来一个节点,去监控其他机器的状况
    • 会在从节点中选出一个主节点
  • 集群
    • 支持多主多从,实现高可用
    • 水平扩容,可以添加主从节点

Redis 和 Memcache 区别

  • Redis 为串行,Memcache 并行
  • Redis 主要强调为多实例,群狼战猛虎
  • 把数据写到内存中,aof,数据高可靠,
  • 多线程写的时候,会记录日志,但是读的速度飞起

关系型数据库和 Redis 保持一致性,使用try catch,涉及到钱压根不使用缓存,使用缓存和关系型数据库同时保存两份

时间: 2024-08-08 05:21:13

Redis 扫盲的相关文章

Redis扫盲:浅谈Redis面试必问——工程架构篇

前言 接下来我们来一起研究下Redis工程架构相关的问题,这部分内容出现的概率相对大一些,因为并不是所有人都会去研究源码,如果面试一味问源码那么可能注定是一场尬聊. 面试时在不要求候选人对Redis非常熟练的前提下,工程问题将是不二之选. 通过本文你将了解到以下内容:1.Redis的内存回收详解2.Redis的持久化机制 Q1:了解Redis的内存回收吗?讲讲你的理解 1.1 为什么要回收内存? Redis作为内存型数据库,如果单纯的只进不出早晚就撑爆了,事实上很多把Redis当做主存储DB用的

大数据扫盲

大数据扫盲 目录 大数据扫盲????1 0.1.????大数据处理流程????1 0.2.????大数据处理技术架构????2 1.????数据分区与路由????2 1.1.????二级映射机制????3 1.1.1.????哈希分区????3 1.1.2.????虚拟桶(virtual bucket)????3 1.1.3.????一致性哈希(consistent hashing)????4 1.2.????一致性????4 1.2.1.????CAP理论????4 1.2.2.????ACI

Redis源码分析(三十六)--- Redis中的11大优秀设计

坚持了一个月左右的时间,从最开始的对Redis的代码做分类,从struct结构体分析开始,到最后分析main主程序结束,中间,各大模块的代码逐个击破,学习,总之,收获了非常多,好久没有这么久的耐心把一个框架学透,学习一个框架,会用那只是小小的一部分,能把背后的原理吃透才是真功夫.在这个学习的最后阶段,是时候要来点干货了,我把这1个多月来的一些总结的一些比较好的代码,和设计思想总结出来了,原本想凑成10大精彩设计的,可后来感觉每个点都挺精彩的,还是做成了11大优秀设计,包证让你打开研究,这里无关语

Redis+keepalived实现双机热备

一. 简介 安装使用centos 5.6(64) Master 192.168.2.235 Slave 192.168.2.236 Vip 192.168.2.200 编译环境 yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby: 当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从

Python操作数据库(mysql redis)

一.python操作mysql数据库: 数据库信息:(例如211.149.218.16   szz  123456) 操作mysql用pymysql模块 #操作其他数据库,就安装相应的模块 import  pymysql ip='211.149.218.16' port=3306 passwd='123456' user='root' db='szz' conn=pymysql.connect(host=ip,user=user,port=port,passwd=passwd,db=db,cha

Redis在Linux中安装使用

一.安装$ wget http://download.redis.io/releases/redis-x.x.x.tar.gz $ tar xzf redis-x.x.x.tar.gz $ cd redis-x.x.x $ make sudo cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-check-rdb redis-trib.rb redis-sentinel redis-server /usr/loca

redis 学习 四 队列

<?php /** * redis实战 * * 利用列表list实现简单队列 * * @example php cache.php */ header('content-type:text/html;chaeset=utf-8'); $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); // 进队列 $userId = mt_rand(000000, 999999); $redis->rpush('QUEUE_NAME',j

Redis实战(三)Redis主从复制

从架构 1.主从架构图 2.通过命令 mkdir redisCluster创建redis集群文件夹 3.通过命令mkdir 6380   mkdir 6381   mkdir 6382在redisCluster文件夹下创建三个文件夹 4.通过以下命令将redis.conf分别拷贝到6380.6381. 6382文件夹下 cp /usr/local/redis/redis-3.0.2/redis.conf  ./6380 cp /usr/local/redis/redis-3.0.2/redis.

Redis Cluster集群部署搭建

在Oracle的路上走了许多年,换换感觉,尝试一下新的知识,也是一个不错的感觉.Redis,一个超轻量化的内存数据库,只做一小块数据库功能实现,却非常优秀的一个产品.今天,就分享一下安装Redis集群的过程. 搭建redis集群,建议至少需要准备3台服务器,共搭建6个节点,3个master,3个slave,并且要求3个master节点不能全部跑到同一台服务器上,保证节点安全,3台服务器的配置相同,使用redistest账号搭建,对应的端口是7000/7001/7002端口 我的集群分配如下,每个