你好呀,我是歪歪. 是这样的,前几天有个读者给我发消息,说面试的时候遇到一个场景题: 他说他当时,一时间竟然找不到回答问题的角度,感觉自己没有回答到点子上. 我仔细想了一下,确实是感到这个问题有一丝丝的奇怪,有一种让人千言万语,又突然懵逼不知从何说起的神奇力量. 为什么这么说呢? 我们先读题啊,仔细的读一遍题,我给你翻译一下. 如果线上 Redis 挂了.然后所有请求打到数据库导致数据库也挂了. 这是啥? Redis 挂了,不就是缓存都没了吗? 缓存都没了,不就是缓存雪崩了吗? 缓存雪崩了,不就…
基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客  QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3.3.2 基于Python操作Redis 1.创建示例数据库表 CREATE TABLE tb_signin_rank( id INT, user_name VARCHAR(10) COMMENT '用户名', signin_num INT COMMENT '签到次数', signin_time D…
1.前言 本章介绍redis的三种多服务实现方式,尽可能简单明了总结一下. 2.复制 复制也可以称为主从模式.假设有两个redis服务,一个在127.0.0.1:6379,一个在127.0.0.1:12345.我们登陆12345端口的redis,输入命令slaveof 127.0.0.1:6379就设置好了复制模式.此时6379就是主服务器,12345就是从服务器. 复制模式下,主从服务器保存相同的数据,概念上称之为数据库状态一致.redis2.8版本前后复制模式有些不同. 2.1 旧版复制 r…
redis 是一个高性能的key-value 数据库.作为no sql 数据库redis 与传统关系型数据库相比有简单灵活.数据结构丰富.高速读写等优点. 本文主要针对redis 在事物方面的处理与传统关系型数据库(使用mysql)进行比对,所使用的环境为ubuntu 14.04.1,mysql 5.5.49,redis 3.2.3. 1操作事务命令 mysql 使用start transaction 开启事物,rollback 回滚事物,commit 提交事物.redis 使用multi 开始…
[1]缓存穿透与缓存雪崩 [1.1]缓存和数据库间数据一致性问题 分布式环境下(单机就不用说了)非常容易出现缓存和数据库间的数据一致性问题,针对这一点的话,只能说,如果你的项目对缓存的要求是强一致性的,那么请不要使用缓存. 我们只能采取合适的策略来降低缓存和数据库间数据不一致的概率,而无法保证两者间的强一致性. 合适的策略包括 合适的缓存更新策略,更新数据库后要及时更新缓存.缓存失败时增加重试机制,例如MQ模式的消息队列. [1.2]缓存击穿(缓存穿透)问题 缓存击穿表示恶意用户模拟请求很多缓存…
Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念 在学习redis之前我们先来学习两个概念,即什么是关系型数据库什么是非关系型数据库,二者的区别是什么,二者的关系又是什么? ** 关系型数据库 ** 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库.用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码.关系模型可以简单理解为二维表格模型,而一个关…
 说句实话,redis这个软件要学习的东西实在多,多到,看的多了就容易迷失,而且还记不住.个人觉得靠记忆去学习一个知识肯定是比较糟糕的,所以还是要带着理解的,最终变成自己的东西,那这个东西才是自己的. redis里面东西很多,个人认为认知一个知识.框架,软件,首先要知道背景.它解决的擅长点,缺点后,再从一个软件的ROOT出发,去有条理学习这个知识点,这样学习东西才会形成自己的一个体系 下面这篇文章,作者看了之后,觉得应该是作者认为redis的一个ROOT核心.中心知识点,很多东西其实都是围绕这它…
数据库应用的发展历程 单机数据库时代:一个应用,一个数据库实例 缓存时代:对某些表中的数据访问频繁,则对这些数据设置缓存(此时数据库中总的数据量不是很大) 水平切分时代:将数据库中的表存放到不同数据库实例中(单张表中存放的数据太多),一个应用可以对应多个数据库实例 垂直切分时代:将一个表按照字段拆分,同一张表中的数据存放到不同表,甚至于不同数据库中(因为此时一个表中的一个字段的数据量已经很大) 读写分离时代:有的数据库负责接收查询命令,有的数据库负责接收数据导入,数据修改等请求,将读写请求分离开…
先来说下session和cookie的异同 session和cookie不仅仅是一个存放在服务器端,一个存放在客户端那么笼统 session虽然存放在服务器端,但是也需要和客户端相互匹配,试想一个浏览器为啥session总是一样的(过期或者关闭不算),主要得益于在浏览器端有个cook,名字叫"PHPSESSID"这个cookie里面就是一串字符串.这个字符串就是用于标示session的,在使用session时当服务器端发现这个cookie后就会到服务器端session文件存放目录查找名…
这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数 数据库连接 下面是我的连接字符串,里面指定了地址,密码,及默认的数据库 Redis启动后默认会分成0-15个数据库,不同的数据库之间键可以重复,StackExchange.Redis的GetDatabase函数提供一个db的可选参数 默认-1实际上是0,可以通过设置连接字符串里的defaultdatabase来指定连接哪个数据库. 指定数据库的操作比较适合来根据业务来划分 Execute 在StackExchang…