redis是什么,为什么要使用它(hello word)

NoSql简介

说起redis就要说起他的来源,一个技术的出现必然有他的道理。

  • 大数据时代的3V:
    1.海量 Volume
    2.多样 Variety
    3.实时 Velocity

  • 互联网需求的3高
    1.高并发
    2.高可用(高可扩)
    3.高性能

  • NoSQL数据库的四大分类:
    1.K/V键值:redis等,
    2.文档型数据库(Bson格式比较多):CouchDB,MongoDB
    3.列存储数据库:Cassandra,HBase
    4.图关系数据库:他不是放图形的,放的是关系比如:朋友圈社交网络,广告推荐系统,社交网络,推荐系统等。专注于构建关系图谱:Neo4J,InfoGrid

  • CAP+BASE:
    1.传统的ACID分别是什么:
    1):A (Atomicity) 原子性
    2):C (Consistency) 一致性
    3):I (Isolation) 独立性
    4): D (Durability) 持久性
    2.CAP:
    C:Consistency(强一致性)
    A:Availability(可用性)
    P:Partition tolerance(分区容错性)
    3.BASE:
    基本可用(Basically Available)
    软状态(Soft state)
    最终一致(Eventually consistent)

    理解:

    • C:Consistency : 一致性,
      “all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。

    • A:Availability : 可用,
      可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。

    • P:Partition Tolerance : 分区容错性,
      即分布式系统在网络正常的情况下可以看成是一个整体,当遇到某节点或网络发生故障的时候,其中一个节点无法访问,就出现了分区。所以为了提高分区容错性,就会数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。

    • 综上所述在分布式系统中,说是分布式肯定少不了的就是各个子节点的部署,少不了的网络传输,那就肯定会出现网络状况拥堵,甚至网络断开的情况。所以P就一定要满足,为什么说C和A不能全部满足呢 简单的例子:
      当发生写操作在一个节点N1中,这个时候网络断开,N1节点的最新数据无法同步到其他的节点中,这个时候另一个请求过来读取N2节点的数据,如果说要满足C,则这个请求就会阻塞,直到网络恢复 数据同步完成之后才会回复客户端,这样就不满足A。如果满足A那么这个请求立刻返回客户端数据就会是N2节点老的数据,就不满足C。
      所以在大型的分布式系统中大部分的架构都是满足AP 的。

redis是什么:

  • 是完全开源免费的,用c语言编写的,最受BSD协议,是一个高性能的(k/v)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前热门的NoSQL数据库之一,
    redis有一下3个特点

    1.支持数据持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用
    2.不仅仅支持简单的k-v类型的数据,同时还提供list,set,zset,hash等数据结构的存储
    3.支持数据备份,master-slave模式的数据备份

能干嘛:

  • 内存存储和持久化,redis支持异步将内存中的数据写到磁盘上,同时不影响继续服务
  • 取最新N个数据的操作,如:可以将最新的10条评论的ID放在redis的list集合里边
  • 模拟类似于HttpSession这种需要设定过期时间的功能
  • 发布、订阅消息系统
  • 定时器,计数器

redis安装 helloword

  • 1.将 redis-4.0.11.tar.gz 安装包放到 linux 中的opt文件夹下,然后执行
    tar -xvfz redis-4.0.11.tar.gz 命令 解压。
  • 2.解压之后进入到解压后的文件夹,执行make命令 这个时候如果正常就会安装成功,如果报gcc找不到则:
    在这里插入图片描述
    执行:
yum -y install gcc gcc-c++  //命令在线安装
  • 3.gcc安装成功之后 再次make 如果提示:
    在这里插入图片描述
    则执行 :
make distclean
  • 4.成功之后再次 make 成功!
  • 5.启动redis: 默认的安装路径是 usr/local/bin
    启动redis
  • 6.查看当前redis进程:
ps aux|grep redis 
  • 7.进入redis设置键值对:
redis-cli -p 6379 //进入redis

//设置键值对
set key  value
get key
  • 8.退出:
SHUTDOWN

redis杂项基础知识

  • 1.但进程模型来处理客户端请求,对读写事件的响应是通过对epoll函数的包装来做到的,redis的实际处理速度完全依靠主进程的执行效率。
  • 2.默认16个数据库,类似数组下角标一样的从零开始,初始默认使用0号库,用 select 数 指令切换数据库
  • 3.DBsize查看当前数据库的key的数量(会有一些系统自带的key)
  • 4.flushall是删除全部的库的key,flushdb是删除当前的库的key
  • 5.redis的16个库都是统一的密码,一个登不上全部登不上
  • 6.默认端口号是6379

关于redis的基础使用可以查看我的另外一篇:
redis使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值