初始Redis
一.NoSql数据库(Not Only Sql):
1.又称为非关系型数据库,主流的NoSql数据库有:
Redis,Hbase,MongoDB
2.NoSql产生的背景:
1.1.数据库的高并发的读写:
比如在双十一期间,那时的并发量就及其的高
1.2.海量数据的效率:
哪怕是加上索引,分区,关系型数据库的效率也是力不从心(几十亿条,甚至几百亿条数据时候)
1.3.高扩展和可用性:
使用分布式的时候,关系型的数据库扩展性就不行了
3.它和关系型数据库的区别:
01.不支持事务的ACDI特性
02.不需要实时的读写
03.不支持sql语句
04.出道时间短,其所涵盖的功能并不是很完善
05.基于分布式,扩展方便
06.无需sql解析,读写效率更高
07.降低服务器成本
08.存储数据的格式是key,value 数据类型灵活
09.数据没有耦合性,容易扩展
4.CAP定理
1.1 定理的概念:
指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性),Paretion tolerance(分区容错性)
***三者不可共存***
1.2.CAP定理是NoSql数据库的基石
一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。
可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。
分区容错性(P):在网络分区的前提下,保证数据的容错机制!意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
1.3.三者不可能共存,最大只能满足两个
CA:一致性(C)可用性(A)
让我们想起来了 关系型数据库中事务的ACID特性
满足者:关系型数据库
CP:一致性(C)分区容错性(P)
满足者:分布式数据库
AP:可用性(A) 分区容错性(P)
满足者:NoSql
1.4..什么是分布式数据库
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
1.5:BASE定理
1.什么是BASE定理
BASE定理就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。
2.组成部分
基本可用(Basically Available)可用性的要求不是很高!
软状态(Soft state)数据不需要实时的保持一致!
比如说1台机器做了修改,其他并不要求实时进行同步更新!
最终一致(Eventually consistent)数据最终保持一致即可!
二:初识Redis
2.1.Redis介绍
1.开源的NoSql数据库
2.C语言编写
3.基于内存运行,并且支持持久化
4.Key value存储
5.是主流的Nosql数据库之一
2.2.Redis优点
1.内存使用方便
2.数据读写快速高效
3.持久化性能相比其他NoSql数据库更好
4.扩展性和移植性强
5.分布式中不可或缺的一员
2.3:Redis的安装
在解压之前,让我们先了解一些关于linux的解/压缩命令
tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-f: 使用档案名字,(切记,这个参数是最后一个参数,后面只能接档案名)
01. 把从官网上下载的 redis-3.2.10.tar.gz 通过 xftp上传到linux操作系统中的指定位置
02. tar -zxvf redis-3.2.10.tar.gz 解压到文件中去
03.解压完后,进入解压出来的文件夹后 输出 make
04. 安装 make install PREFIX="安装路径"
05. 如果在安装的位置看到一个bin目录 说明安装成功了
如果make指令报错
make[1]: 进入目录“/software/redis-3.2.10/src”
CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录“/software/redis-3.2.10/src”
make: *** [all] 错误 2
这个问题是:缺少c++组件
执行:yum install gcc-c++ (后面一直y就好)
***1.如果yum安装过程中出现镜像的问题
解决办法:
1. 清空自带的yum源: rm -rf /etc/yum.repos.d/*
2. 创建本地yum源:vim /etc/yum.repos.d/xx.repo(后缀名必须是以 repo结尾的,xx是文件名,自拟!)
3. 编辑文件xx.repo
[local] name=local baseurl=file:///mnt gpgcheck=
4. 挂载光盘
光盘的挂载点必须是 上面的baseurl
mount /dev/cdrom /mnt/
只有挂载只有才有 /mnt/目录
5. 实现永久挂载光盘
vim /etc/fstab
在文件中的最后一行输入
/dev/cdrom /mnt iso9660 defaults 0 0
6. 让文件立即生效
mount -a
7. 可以使用yum了~~~~~
***2.如果遇到 CC adlist.o
In file included from adlist.c:34:0:
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
#include <jemalloc/jemalloc.h>
解决办法:
make MALLOC=libc
2.4:运行redis
在bin目录下运行指令:./redis-server ../redis.conf
2.5:配置redis.conf文件
在redis-3.2.10这个目录下输入指令:vim redis.conf
初始Redis的更多相关文章
- 初始Redis与简单使用
初始Redis: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...
- 【Redis篇】初始Redis与Redis安装
一.前述 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括st ...
- 初始redis数据库
redis就是一个类似于存储在内存中的大字典 安装: windows下安装redis: 你需要在你的环境下安装: pip install redis 以上是在你的全局环境安装, 你如果用的是虚拟环境你 ...
- redis集群之REDIS CLUSTER
redis集群之REDIS CLUSTER 时间 2016-04-11 17:05:00 NoSQL_博客园 原文 http://www.cnblogs.com/zhanchenjin/p/537 ...
- 《Redis开发与运维》读书笔记
一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争问题 基于键值对的数据结构,支持的数据结构丰富.它 ...
- redis介绍(3)RDB和AOF原理解析
简单科普一下redis的概念:(会的可忽略) Redis的概念 redis基于内存的Key Value类型的NoSQL数据库. Redis的特点 1. Redis是一个高性能的Key/Value数据库 ...
- Redis开发与运维学习笔记
<Redis开发与运维>读书笔记 一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争 ...
- 非关系型数据库redis
Redis初始 redis中不区分字母的大小写 查看端口 ss tnlp 安装 编译安装(需要先配置epel源) yum install -y redis 编译安装 wget https://down ...
- scrapy分布式Spider源码分析及实现过程
分布式框架scrapy_redis实现了一套完整的组件,其中也实现了spider,RedisSpider是在继承原scrapy的Spider的基础上略有改动,初始URL不在从start_urls列表中 ...
随机推荐
- 存货控制中的ABC分类释义
存货控制的ABC制度是根据存货的重要程度把存货归为A.B.C三类,最重要的是A类,最不重要的是C类. A类产品就是指在产品销售进程中,销量比较多,在库存管理方面需要大量备货的产品; B类则是销量适中, ...
- slackware在vagrant中使用
slackware以简洁干净的系统闻名于世,如果你想学习了解linux,那么slackware是一个很好的选择,其他linux不是不好,他们都太复杂了,复杂的你不知道从哪里开始. 所以,还是slack ...
- Egret 4.x 和 5.x 项目共存的方法
正常来说,安装了对应的引擎之后,4.x的项目和5.x的项目是各自编译互相不影响的. 但是由于引擎的bug,我在实际使用中,出现了编译5.x的项目正常,之后切换到4.x的项目编译时,显示正常编译完毕,但 ...
- cx_oracle访问处理oracle中文乱码问题
cx_oracle访问处理oracle中文乱码问题 问题描述 使用docker打包了centos镜像,编码为gbk,随后访问oracle出现了很多乱码.其原因自然是因为编码不一致,服务器为zhs16g ...
- Spring的两种代理方式:JDK动态代理和CGLIB动态代理
代理模式 代理模式的英文叫做Proxy或Surrogate,中文都可译为”代理“,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一个对 ...
- Node.js 反序列化漏洞远程执行代码(CVE-2017-5941)
2.1 摘要 2.1.1 漏洞介绍 漏洞名称: Exploiting Node.js deserialization bug for Remote Code Execution 漏洞CVE id: C ...
- 让织梦内容页arclist标签的当前文章标题加亮显示
很多人在用织梦做站的时候,会用到在当前栏目页面,给当前栏目标题使用指定样式如标题加亮,或者放个背景图.这是一个很常用和实用的功能,比如在导航页面,标识当前在浏览哪个栏目.如下图: 但是有些时候,我们在 ...
- linux windows安装python的最佳方式,miniconda
1.在linux安装python文章很多,但是步骤很多,没搞好还会把yum命令弄坏,要修复.这件事就发生在我身上,准确说不是我造成的,是总监自己安装python造成yum损坏的,然后需要运维去百度修改 ...
- HTML中include file的用法
语法 <!-- #include PathType = "FileName" --> 参数 PathType 路径类型 路径可为以下某种类型: 文件 该文件名是带有 ...
- 给新手学习Java的建议
有很多的朋友都在问我一个同样的问题:新手应该如何能学好Java.我做了一个简单的总结,分享给大家: 1-信念:无论你是选择JAVA,C,C#,C++....还是其他的语言编程,信念是第一位,只有相信自 ...