之所以使用python,是因为python多线程非常简单. 之所以使用shell,是因为写了个服务,可以方便的重启python写的那个脚本. 总体思路:利用redis的发布订阅,php作为生产者,python作为消息费,来实现多台redis-master数据同步.中间也用了redis的list. 当然多台redis-master可以做一个redis集群,然后再两两同步.这里不讨论这么情况的实现. 1.PHP代码(php作为消息生产者,也就是客户端) $redis = new Redis(); $…
1.redis_demo Maven  ItemMapper.xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespa…
Python之路,Day9 - 异步IO\数据库\队列\缓存   本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SSH Twsited网络框架 引子 到目前为止,我们已经学了网络并发编程的2个套路, 多进程,多线程,这哥俩的优势和劣势都非常的明显,我们一起来回顾下 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是…
redis shell命令大全(转自http://blog.mkfree.com/posts/5105432f975ad0eb7d135964) 作者:oyhk   2013-1-28 3:11:35    0 评论    783浏览 APPEND key value追加一个值到key上 AUTH password验证服务器 BGREWRITEAOF异步重写追加文件 BGSAVE异步保存数据集到磁盘上 BLPOP key [key ...] timeout删除,并获得该列表中的第一元素,或阻塞,…
一.Memcached1.简介Memcached 是一个高性能的分布式内存对象缓存系统,一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性.用来存储小块的任意数据(字符串.对象).比如:数据库调用.API调用或者是页面渲染的结果. 2.本质它是一个简洁的key-value存储系统.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 3.特征 ①协议简单 ②基于libevent的事…
Redis shell 命令 参数 功能 redis-cli -r 将一个命令执行多次 -i 每隔几秒执行一次 -x 和|一起接收前面地输出,并执行命令 -c   -a   --scan/--pattern 扫描指定模式地键 --slave 监控节点更新操作 --rdb 实例生成并发送RDB持久化文件 --pipe   --bigkeys 提取占用内存比较大的键 --eval 执行Lua脚本 --latency 检测网络延迟 --stat 查看一些统计信息 --raw/--no-row 可以返回…
Rabbit Mq消息队列 RabbitMQ能为你做些什么? 消息系统允许软件.应用相互连接和扩展.这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接.消息系统通过将消息的发送和接收分离来实现应用程序的异步和解偶. 或许你正在考虑进行数据投递,非阻塞操作或推送通知.或许你想要实现发布/订阅,异步处理,或者工作队列.所有这些都可以通过消息系统实现. RabbitMQ是一个消息代理 - 一个消息系统的媒介.它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程…
一.Memcached1.简介Memcached 是一个高性能的分布式内存对象缓存系统,一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性.用来存储小块的任意数据(字符串.对象).比如:数据库调用.API调用或者是页面渲染的结果. 2.本质它是一个简洁的key-value存储系统.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 3.特征 ①协议简单 ②基于libevent的事…
初次使用redis时,在链接Redis后,运行报错“module 'redis' has no attribute 'Redis' ”. 具体代码如下: import redis r = redis.Redis(host='192.168.2.22',port=6379,db=2) r.set('name','Delia') print(r.get('name')) 报错如下: 尝试性解决方法一: 在Python安装路径下使用pip安装redis,重新运行程序: pip install redi…
python基础学习06 模块导入 导入模块的顺序 1.先从当前目录下找 2.当前目录下找不到,再从环境变量中找,如果在同时在当前目录和环境变量中建立相同的py文件,优先使用当前目录下的 导入模块的实质 导入的python文件运行一次,并放到内存中,之后可以调用里面的变量或者方法 导入的python文件导入过一次后如果运行时遇到相同的文件会过滤掉,如果强行要再加载一次可以使用如下方法 import os import importlib importlib.reload(os) py环境变量 环…
Redis提供了5种数据结构已经足够强大,但除此之外,Redis还提供了诸如慢查询分析.功能强大的Redis Shell.Pipeline.事务与Lua脚本.Bitmaps.HyperLogLog.发布订阅.GEO等附加功能,这些功能可以在某些场景发挥重要作用. 慢查询分析:通过慢查询分析,找出有问题的命令进行优化: Redis Shell:功能强大的Redis Shell会有意想不到的使用功能: Pipeline:通过Pipeline(管道或者流水线)机制有效提高客户端性能: 事务与Lua:制…
简介: 明天再写,上脚本 #!/bin/bash #------------------------------------------------------------------------------------------------------------------# #| Some people die at the age of 25 and don't bury themselves in the earth until they are 75 |# #-----------…
支持识别离线包和联网安装,自动修改使用后台运行模式,离线安装的方法是,将离线包和脚本放在同一个文件夹, 它会先识别有没有离线包, 有离线包就先安装离线包, 没有离线包就安装进行判断机器是否能联网, 能联网的情况下自动请求源安装,一切自动化.下面演示一下 #!/bin/bash #--------------------------------------------------------------------------------------------------------------…
docker中安装好redis后,运行 docker ps 指令,查看所有运行中的镜像信息 然后运行 docker inspect --format "{{ .State.Pid}}" <container id> 获取到pid,然后再运行 nsenter --target <pid> --mount --uts --ipc --net --pid 进入容器里面,最后运行redis-cli连接 root@***********:/# redis-cli redi…
安装: 1.获取redis资源 wget http://download.redis.io/releases/redis-4.0.8.tar.gz 2.解压 tar xzvf redis-4.0.8.tar.gz 3.安装 cd redis-4.0.8 make cd src make install PREFIX=/usr/local/redis (如果有执行出错,先安装gcc.安装命令为:yum -y install gcc automake autoconf libtool make .…
redis的使用和安装,redis基础和高级部分 在后端开发中,为了提高性能,对于一些经常查询但是又不太变化的内容会使用redis,比如前端的列表展示项等,如果数据有变化也可以清空缓存,让前端查一次数据库,所以使用redis相对高效和灵活.本文主要对于redis在linux上的使用和安装进行说明. 1.redis的安装 2.redis常用的命令 3.在阿里云上面安装redis 4.在vwmare上安装redis 5.利用jedis连接redis进行存入和输出 6.redis的高可用,哨兵机制,主…
知识点梳理 课堂讲义 课程计划 1. REDIS 入 门 (了解) (操作)   2. 数据类型 (重点) (操作) (理解) 3. 常用指令   (操作)   4. Jedis (重点) (操作)   5. 持 久 化 (重点)   (理解) 6. 数据删除与淘汰策略     (理解) 7. 主从复制 (重点) (操作) (理解) 8. 哨 兵 (重点) (操作) (理解) 9. Cluster集群方案 (重点) (操作) (理解) 10. 企业级缓存解决方案 (重点)   (理解) 11. …
[IT168 专稿]在之前的文章中介绍了<Redis快速入门:选择Key-Value Store>,今天给大家介绍Redis的入门知识.Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主持. 1.数据类型 作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系.但是,除了常规的数值或字符串,Redis的键值还…
(本文首发于"数据库架构师"公号,订阅"数据库架构师"公号,一起学习数据库技术)   Redis 作为一款业内使用率最高的内存数据库,其拥有非常高的性能,单节点的QPS压测能达到18万以上.但也正因此如此,当应用访问 Redis 时,如果发现响应延迟变大时就会给业务带来非常大的影响. 比如在日常使用Redis时,肯定或多或少都遇到过下面这种问题: 为什么Redis服务过去一直很稳定,突然从今天某个时间点开始变慢了? 为什么访问Redis相同的命令,有时响应很快,有时…
一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一下神马是主从复制架构? 1.1 源于关系数据库的读写分离 随着网站业务的不断发展,用户量的不断增加,数据量也成倍的增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案不够健壮,那么数据库服务器很有可能在高并发访问负载压力下宕机,造成…
一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一下神马是主从复制架构? 1.1 源于关系数据库的读写分离 随着网站业务的不断发展,用户量的不断增加,数据量也成倍的增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案不够健壮,那么数据库服务器很有可能在高并发访问负载压力下宕机,造成…
接着上一篇,前面两篇我总结了<Redis总结(一)Redis安装>和<Redis总结(二)C#中如何使用redis> 所以这一篇,会讲讲Redis 的主从复制以及C#中如何调用. Redis跟MySQL一样,拥有非常强大的主从复制功能,而且还支持一个master可以拥有多个slave,而一个slave又可以拥有多个slave,从而形成强大的多级服务器集群架构. redis的主从复制是异步进行的,它不会影响master的运行,所以不会降低redis的处理性能.主从架构中,可以考虑关闭…
Redis相比Memcached的很大一个优势是支持数据的持久化, 通常持久化的场景一个是做数据库使用,另一个是Redis在做缓存服务器时,防止缓存失效. Redis的持久化主要有快照Snapshotting和AOF日志文件两种方式. 前者会根据配置的规则定时将内存中的数据持久化到硬盘上, 后者则是在每次执行写命令之后将命令记录下来. >>RDB方式 Redis是会以快照的形式将数据持久化到磁盘上. 默认会将快照文件存储在Redis当前进程的工作目录的dump.rdb文件中, 可以通过配置文件…
Linux下Redis的部署和启动 下载安装介质 Redis官网地址:http://www.redis.io/目前最新版本是redis-3.0.3. 可以访问 http://download.redis.io/releases/redis-3.0.3.tar.gz 下载后使用SCP上传到服务器, 或者直接下载: wget http://download.redis.io/releases/redis-3.0.3.tar.gz 解压及编译 bingyue@ubuntu:/data$ tar -zv…
Redis 提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在 Linux 终端使用. 1. 键值相关命令: 2. 服务器相关命令 键值相关命令 ① keys 命令 返回满足给定 pattern 的所有 key. [例] > keys * ) "time" ) "list4" ) "list1" ) "email" ) "age" ) "myset6" ) "…
# Redis 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写) # # 1k =>  1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb =>  1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024  bytes # # 内存配置大小写是一样的.比如 1gb…
一.引言             上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一点,Master和Slave两个节点的持久化配置尽量保持一致,否则会有奇怪的问题出现.从今天开始我们开始讲Redis集群模式的第二模式,也就是"哨兵"模式,该模式是从Redis的2.6版本开始提供的,但是当时这个版本的模式是不稳定的,直到Redis的2.8版本以后,这个哨兵模式才稳定下来,…
一.引言      本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的详细概念做深入的探讨.本文只是提供了有关如何设置集群.测试和操作集群的说明,而不涉及Redis集群规范中涵盖的细节,只是从用户的角度描述系统的行为.但是,本教程也试图从最终用户的角度来解释有关Redis Cluster的可用性和一致性特征的信息,并以简单易懂的方式讲解.      请注意,本教程需要使用Redis 3.0版本或更高版本.      如果您打算部署Redis的Cluster集群,即使不是严…
在CenOS 6.7 linux环境下搭建Redis 集群环境 1.下载最新的Redis版本 本人下载的Redis版本是3.2.1版本,下载之后,解压,编译(make): 具体操作可以参考我的博文:Redis 学习笔记1:CentOS 6.7下安装Redis 编译后的redis目录在 /usr/local/redis-3.2.1 2.新建6个目录 [root@itcast01 local]# mkdir 7000 7001 7002 7003 7004 7005  将 /usr/local/re…
一.Redis Cluster集群简介 Redis Cluster是Redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了Redis分布式的需求,当一个节点挂了可以快速的切换到另一个节点,当遇到单机内存.并发等瓶颈时,可以采用分布式方案要解决问题. 二.集群原理   Redis Cluster架构图 Redis Cluster集群采用了P2P的模式,完全去中心化,Redis把所有的Key分成了16384个slot,每个Redis实例负责其中一部分slot,集群中的所有信息(节点.…