nosql

Redis for python API

心已入冬 提交于 2020-01-08 10:50:20
目录 Redis for python API 1、单实例 2、主从环境(哨兵) 3、集群环境 我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。 个人博客: 传送阵 笔者微信: zhanghe15069028807 ,非诚勿扰。 Redis for python API 我们使用Redis一方面是为了缓存,另一个方面还是让开发人员使用,这一小节我们就演示一下用当下最火的语言python连接redis,其它的语言思路都与此类似。 不同的redis架构连接方法不一样,我们最常用的redis架构有三种:单实例、主从、集群。此次演示基于已经搭建好的环境,也就是前几次博文搭建的环境,具体的搭建过程不再多说,直奔主题。 redis和python是两套不相干的软件,想要联动起来的话必须要通过特殊的中间件,这种中间件类似于驱动程序,这种驱动程序在python官网和redis官网都可以下载的到。 redis官网:www.redis.io www.redis.cn 我们在使用python与redis联动时,最好使用python比较新的版本,3.0以上,就不要再用2.0的版本了,2.0的版本对redis集群的支持并不太好,在centos上安装python3也相当的简单,配置好epel源或是阿里云的源之后直接 yum

关系型数据库与非关系型数据库区别

▼魔方 西西 提交于 2020-01-08 06:40:43
当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。 非关系型数据库有 NoSql、Cloudant。 nosql和关系型数据库比较? 优点: 1)成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。 2)查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。 3)存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。 4)扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。 缺点: 1)维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。 2)不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本。 3)不提供关系型数据库对事物的处理。 来源: https://www.cnblogs.com/fengli9998/p/6184866.html

Redis集群

落花浮王杯 提交于 2020-01-07 16:58:22
目录 Redis集群 理论 安装 管理 增加新-主节点  增加新-从节点 删除节点 我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。 个人博客: 传送阵 笔者微信: zhanghe15069028807 ,非诚勿扰。 Redis集群 理论 Redis集群起码是三个服务器做,每个服务器里面都有两个实例,两个实例并不能是单纯的一主一从,而是错开,防止一个服务器挂了之后,数据丢失,如下图所示: 当集群安装好之后,会生成16384个槽位用于存储键值,其中0--5500在master1这个槽位上,5501--11000在master2槽位上,11001--16384在第三个槽位上,如下所示: 当我们存储一个键值的时候,redis会通过一个公式计算出一个值,假如这个值 是6666的话,那么这个键值就存储到master2这个实例上,依次类推,存的时候是这样存,取的时候同样也是这样取。 客户端在连接的时候无论连接哪一个节点都可以,如果本节点上没有要存取的键值的话,本节点会帮客户端转发,客户端不需要重新连接。 万一其中的一个主挂了,并不是从立马主顶上,而是剩下的两个主一同投票来决定,并不是利用了“哨兵sentinel”的机制。 安装 我们操作的时候用一台服务器,然后开6个实例:7000-----7005 [root

怎么用Kafka 实现数据中心到数据中心的复制?

只愿长相守 提交于 2020-01-07 16:26:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 它能做什么? 此功能允许您在两个不同的数据中心A和B中运行两个 ArangoDB 群集,并设置从A到B的异步复制。这意味着数据中心A中的群集A可以照常用于读取和写入操作以及所有更改数据通过网络复制到数据中心B中的另一个集群B。复制是异步的,也就是说,更改出现在短暂的延迟之后,通常在几秒钟内。(阅读更多关于 ArangoDB集群架构 ) 在数据中心A发生灾难的情况下,如网络连接完全丢失,可以快速停止复制,并开始使用数据中心B中的群集B作为群集A的替代品。之后,当灾难结束时,可以或者使用集群A作为群集B的异步副本,或者切换回A并继续复制到群集A。 挑战 ? 单个ArangoDB集群是具有良好的水平可扩展性的分布式系统。数据容量和查询性能(读写)都与使用的服务器数量呈线性关系。自动分片导致数据的实际更改同时发生在所有服务器的整个地方。特别是,这意味着设计 - 没有一个地方确定所有更改的总顺序。也就是说,我们正在处理同时发生大量数据更新的分布式混乱。变化率可能会有很大差异,我们必须处理大量的写入突发。 同时,ArangoDB集群是容错的。例如,如果数据中心中的单个服务器出现故障,则ArangoDB群集可以容易地容忍这种损失,并假定用户将复制因子设置为至少为2 - 既没有丢失任何数据,也没有丢失可用性

Redis(1)

主宰稳场 提交于 2020-01-07 12:39:19
目录 Redis 1、基本概念 基本概念 面试点 memcache&redis 2、基本操作 安装&启动&基本配置 安全配置 在线配置 3、持久化 RDB AOF 区别 我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。 个人博客: 传送阵 笔者微信: zhanghe15069028807 ,非诚勿扰。 Redis 1、基本概念 基本概念 Redis是一款用于缓存的nosql数据库,用C语言写的,性能放在第一位,稳定安全放在第二位,这是与关系型数据库有区别的地方。与redis同类型的产品有memcache,这两个产品各有优缺点,我们后面会有分析。 Redis的运行比较依赖内存,通常我们在运行Redis的服务器上安装大内存,而且是集群的方式运行,一台服务器可以运行多个Redis实例,配置起来也比较简单。 下面我们使用Redis的3.2.12版本来演示,官网地址:www.redis.io 具体下载地址 下载地址 。 面试点 持久化 数据类型 缓存穿透 memcache&redis memcache是一款比较极端的软件,追求极速,安全性和扩展性都不是太好,而且只支持键值对。 redis支持多种数据类型,持久化,自带高可用。 tair是二次开发的memcache,淘宝的缓存应用,单机跑没有优势,分布式性能非常好

Firebase mimicing WHERE IN

六月ゝ 毕业季﹏ 提交于 2020-01-07 08:01:49
问题 Given the date model provided below, after a user logs in and retrieves their data, they can also get a list of their friends. However, in order to now attain details of those two friends by ids fdb17f3a-7b7d-4aa5-9a0b-b9fb33c349de and a96da7b1-7c4e-44bc-b82e-fc75bed52bcd , at present, the most efficiently operation appears to simply be to loop through the urls, in such a way as: for singleFriendID in allFriendIds firebase.com/[my_db_name]/users/{singleFriendID} end but even that has its

Firebase mimicing WHERE IN

橙三吉。 提交于 2020-01-07 08:01:02
问题 Given the date model provided below, after a user logs in and retrieves their data, they can also get a list of their friends. However, in order to now attain details of those two friends by ids fdb17f3a-7b7d-4aa5-9a0b-b9fb33c349de and a96da7b1-7c4e-44bc-b82e-fc75bed52bcd , at present, the most efficiently operation appears to simply be to loop through the urls, in such a way as: for singleFriendID in allFriendIds firebase.com/[my_db_name]/users/{singleFriendID} end but even that has its

Get the latest document version and aggregate the results

对着背影说爱祢 提交于 2020-01-07 06:43:32
问题 My index contains a lot of documents, each of them has several versions, for example: {"doc_id": 13, "version": 1, "text": "bar"} {"doc_id": 13, "version": 2, "text": "bar"} {"doc_id": 13, "version": 3, "text": "bar"} {"doc_id": 14, "version": 1, "text": "foo"} {"doc_id": 14, "version": 2, "text": "bar"} I want to get the last version for each document, and aggregate them (last versions) using terms aggregation. I've tried to use top hits to retrieve last versions: {"size" :0, "aggs" : { "doc

Try to understand how well can denormalize work with firebase database in my scenario

自古美人都是妖i 提交于 2020-01-07 06:32:51
问题 So basically i'm building all previous application with mysql to store data and consider switch to firebase database which make me feel a little bit crazy. I'm trying to implement a chat system but there is some trouble when understanding how it work. Based on the Denormalizing Your Data is Normal I get the idea and concept on how does denormalize work. I know I could just create a message structure to store chat message like below (the example from doc) "messages": { "one": { "m1": { "name":

Try to understand how well can denormalize work with firebase database in my scenario

大憨熊 提交于 2020-01-07 06:32:09
问题 So basically i'm building all previous application with mysql to store data and consider switch to firebase database which make me feel a little bit crazy. I'm trying to implement a chat system but there is some trouble when understanding how it work. Based on the Denormalizing Your Data is Normal I get the idea and concept on how does denormalize work. I know I could just create a message structure to store chat message like below (the example from doc) "messages": { "one": { "m1": { "name":