二十三 NoSql&Redi及其安装

什么是Nosql

not only sql , 不仅仅是sql,是一项全新的数据库理念,泛指非关系型的数据库。

为什么需要NoSql

解决以下问题:

1 High Performance   对数据库高并发读写的要求

例如电商的秒杀,一瞬间很多人访问仓库。投票计数等等

2 Huge Storage  对海量数据的高效率存储和访问的需求

例如QQ,推特等等,几亿用户,产生的信息量关系型数据库很难应付。

3 High Scalability && High Availability  对数据库的高可拓展性和高可用性的需求

基于web的架构中,数据库是最难进行横向扩展的。当一个应用系统的用户量和访问量与日俱增的时候

你的数据库却没法像WebServer和app Server 那样简单的通过添加更多的硬件和服务结点来扩展性能和负载能力。

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

主要的数据放在关系型数据库里面,性能提升的数据放在Redis里面

NoSQL数据库的四大分类:

键值对存储数据库:

  • 产品:Redis、Tokyo Cabiner、Voldemort
  • 典型应用:内容缓存,主要用于处理大量数据的高访问负载
  • 数据模型:一系列键值对
  • 优势:快速查询
  • 劣势:存储的数据缺少结构化

列存储数据库:

  • 产品:HBASE
  • 典型应用:分布式的文件系统
  • 数据模型:以列簇式存储,将同一列数据存在一起
  • 优势:查找速度快,可拓展性强,更容易进行分布式扩展
  • 劣势:功能相对局限

文档型数据库:

  • 相关产品:MogoDB
  • 典型应用:web应用(与Key-Value类似,Value是结构化的)
  • 数据模型:一系列键值对
  • 优势:数据结构要求不严格
  • 劣势:查询性能不高,缺乏统一的查询语法

图形数据库:

产品:InfoGrid

典型应用:社交网络

数据模型:图结构

优势:利用图结构相关算法

劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案

NoSQL主流:Redis

Redis:用C语言开发的一个直接操作内存的开源的高性能键值对数据库,它提供多种数据类型来适应不同场景下的存储需求

目前为止Redis支持的键值数据类型如下:

  • 字符串类型
  • 散列类型
  • 列表类型
  • 集合类型
  • 有序集合类型

官方测试数据:50个并发执行100000,读的速度是110000次/秒,写的速度是81000次/s.

Redis应用场景:

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

Redis的安装:

Redis的安装包:源码形式提供,.c文件

将.c编译为.o文件 需要安装gcc依赖

将编译后的文件安装在Linux上

等价于 希望在当前系统上安装一个java版本的QQ,而下载到的安装文件是以.java这样的源码形式提供

需要:

下载Gcc :在系统上有JDK(gcc)

编译:通过JDK将源码编译为字节码

安装:编译依赖gcc环境,需要安装gcc

Redis的启动:

1前端模式启动:不推荐

只接短信bin/redis-server,缺点是启动完成后不能进行其他操作,除非用Ctrl+C结束程序,不推荐使用

2 后端启动

redis-cli连上redis服务后,可以在命令行发送命令

ping:测试客户端与Redis的连接是否正常,如果连接正常会受到回复PONG

set/get : 向Redis设置数据、获取数据  set name mary   get name

del:删除指定key的内容  del key1

Redis的数据结构:

。。。。未完待续

原文地址:https://www.cnblogs.com/ltfxy/p/10293454.html

时间: 2024-10-19 02:19:48

二十三 NoSql&Redi及其安装的相关文章

二十三、Android源代码是这样搞到的(图解)

Android学习到一定程度,就一定要多读代码多思考,Android源代码就是非常好的学习材料,本文就是把Android的源码下载下来.我们知道Android的源代码是用Git这个分布式版本控制工具管理的,下载起来比较麻烦,我们在这里用图解的方式一步一步来,你肯定能学会. 第一步.安装VMWare 我假设你在Windows下,而Android源代码在Linux下下载会更方面些.那么我们就装一个虚拟机来创造一个Linux环境.不熟悉的同学去Google一下“VMware Workstation 7

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示 算法系列之二十三离散傅立叶变换之音频播放与频谱显示 导语 什么是频谱 1 频谱的原理 2 频谱的选择 3 频谱的计算 显示动态频谱 1 实现方法 2 杂项说明 结果展示 导语 频谱和均衡器,几乎是媒体播放程序的必备物件,没有这两个功能的媒体播放程序会被认为不够专业,现在主流的播放器都具备这两个功能,foobar 2000的十八段均衡器就曾经让很多人着迷.在上一篇对离散傅立叶变换介绍的基础上,本篇就进一步介绍一下频谱是怎么回事儿,下一篇继续介绍

【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十三:DS1302模块

实验二十三:DS1302模块 DS1302这只硬件虽然曾在<建模篇>介绍过,所以重复的内容请怒笔者懒惰唠叨了,笔者尽可以一笑带过,废话少说让我们进入正题吧.DS1302是执行事实时钟(Real Time Clock)的硬件,采用SPI传输. 表示23.1 访问(地址)字节. [7] [6] [5] [4] [3] [2] [1] [0] 1 A5 A4 A3 A2 A1 A0 R/W DS1302作为从机任由主机蹂躏 ... 啊,是任由主机访问才对.对此,访问便有方向之分.如表23.1所示,访

从零开始学android&lt;RatingBar评分组件.二十三.&gt;

如果现在用户要对某个应用程序打分往往会使用图所示的组件,通过选择的"五角星"的个数来决定最终的打分成绩 这样的功能在Android之中,可以使用RatingBar组件实现,使用此组件可以方便用户的输入,而且很直观,RatingBar类的定义结构如下: java.lang.Object ? android.view.View ? android.widget.ProgressBar ? android.widget.AbsSeekBar ? android.widget.RatingBa

使用delphi 开发多层应用(二十三)KbmMW 的WIB

解释WIB 是什么之前,先回顾以下我们前面的各种服务工作方式.前面的各种服务的工作方式都是请求/应答方式. 客户端发送请求,服务器端根据客户端的请求,返回相应的结果.这种方式是一种顺序式访问,是一种紧耦合的方式. 服务器被动接受访问,服务器无法直接给客户端发消息.针对这种情况出现了发布/订阅方式.现在这种方式很热呀! 发布/订阅方式类似出版社发行杂志,出版社每年要求大家订阅杂志,当你订阅后,每月到时,不管你有没有问, 杂志都会准时送到你家门口.对于计算机系统类似,当你订阅了服务器上的某种消息后,

全栈JavaScript之路( 二十三 )DOM2、DOM3, 涉及XML命名空间的扩展(一)

<!DOCTYPE html> <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"> <head> <title>Example XHTML page</title> </head> <body> <s:svg xmlns:s="http://www.w3.org/2000/svg" version="1.1&

【管理心得之二十三】道是道,非常道。名可名,非常名。

场景再现 ====================== {一次PMP社团活动} 主持人   :在坐的各位,有谁自己动手煮过饺子或面条?请举手示意. 主持人   :真不少呀!那么把饺子或面条下锅之后,水沸腾.向外溢出时,你会怎么做? 80%回答道:加冷水 主持人   :为什么加冷水? 80%回答道:冷水 可以防止水沸腾,防止溢出. 主持人   :这是唯一方法吗? 20%回答道:还可以把火拧小,控制火温. 主持人   :这个方法似乎更方便,为什么刚开始的作答不是后者呢? ==============

每日算法之二十三:Reverse Nodes in k-Group

Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is. You may not alter the values in the nodes, only nod