docker 安装 redis 拉取镜像 docker pull redis
宿主机创建映射目录 创建目录 sudo mkdir -p docker/redis/redis01/conf
sudo mkdir -p docker/redis/redis01/data
conf 目录放redis.conf 配置文件
data 目录映射redis数据目录
上面文件都要chmod 777 的权限
创建配置文件 在线拉取一个 redis.conf 放入 docker/redis/redis01/conf 目录下
cd docker/redis/redis01/conf
wget http:
什么是redis 穿透 前面我们有一篇文章介绍了 redis 下的雪崩已经一些解决办法 redis缓存造成雪崩怎么办,点击查看
今天我们再来看下redis下的穿透是什么?
顾名思义:穿透就是把一个容器或者保护罩击穿.
当一个请求过来,我们会根据参数去匹配redis缓存数据;
如果没有找到缓存结果,我们才会接着去请求DB.
那么问题来了:
当成批的并发请求过来,同时去请求一个 redis 缓存中不存在的数据,会发生什么要的效果?
是不是想到了雪崩?
当缓存不能命中,说明我们要去DB上查找数据,而这个并发直接去打DB,真的有点雪崩的意思.
会出现什么要的效果,我们基本想到了.
为什么会有批量并
什么是redis雪崩 redis 缓存在同一时间失效,导致请求直接从物理数据库中读取数据,而针对一些热门并发数据,
如果在同一时间缓存全部失效,导致并发过来,物理数据库承担不住大并发请求而导致系统崩溃,就是redis雪崩.
什么情景下会出现这种情况 比如微博热搜,app首页数据已经电商秒杀活动商品等等.....
而这些数据一般情况下是定时任务来创建redis缓存;
比如定时任务执行一次,把热门数据缓存起来,并且设置统一生效时间2小时;
而2小时后,正好面临一场秒杀活动;
我们试想一下,
2小时后的缓存全部失效,这时突然一个高并发请求进来,本来redis能抵抗80%并发请求,结果因为全部失效导
redis如何处理客户端连接
redis 连接建立
Redis Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:
首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。
然后为这个socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法
然后创建一个 readable 的文件事件用于监听这个客户端 socket 的数据发送
当客户端连接被初始化后,
会查看目前的连接数,然后对比配置好的 maxclients
Redis.conf 配置文件详解 # [Redis](http://yijiebuyi.com/category/redis.html) 配置文件
# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# 内存
Redis.conf 配置文件详解 # [Redis](http://yijiebuyi.com/category/redis.html) 配置文件
# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# 内存
今天好累....下班去健身房跑步运动,看着这一身肥肉,希望未来的几个月内能有一点改变,健康最重要,大家要多注意身体.开始说正题,成熟的orm框架大部分来自关系型数据库.KV数据库的orm还是比较少的,但是增速很快,支持mongodb的也陆续出来,但是如果你想找一款 redis 的orm真的少的可怜.github地址:https://github.com/wdavidw/node-ron用的人还是不多,作者官网以及测试用例用coffee script 做demo ,实在不感冒.所以我在自己把每个api 测试一把,回头奉上,所以今天的博客注定又是不完整的,现在开始写,争取做一个完整示例来说比较好.
redis 中实现了一种消息通信模式, 发布 pub , 订阅 sub .这2个模式看上去是一对一握手状态,其实不然, redis 在实现 消息发布和订阅模块上做了充足的解耦.如何理解:redis 在消息发布的时候,并不是直接发送给所有的消息订阅者,而是发送到了一个频道上 (channel ), 这个频道再做转发,发给所有对这个频道感兴趣的人.发布者可以同时发布多个,订阅者也可以同时订阅多个,并不是一对一的关系.而在整个实现逻辑上和观察者模式非常相似.消息订阅者 sub 就像 观察者.消息发布者 pub 就像一个事件.onmessage 处理函数就像一个事件绑定函数.观察者细致的观察着周围事件
redis 在nosql阵营可谓是红的发紫,它比其他nosql产品支持的存储类型比较丰富,而且存储方式比较灵活,试用的成本也不高.本文简单描述下 redis 下如何实现一个排行榜,缘由是redis 支持一种 有序集合 zset 类型,zset 是set 类型的一个扩展,比原有的类型多了一个顺序属性.此属性在每次插入数据时会自动调整顺序值,保证value值按照一定顺序连续排列.我们首先插入一些测试数据.zhangzhi@moke:~$redis-cli-h192.168.1.175-p6377我用客户端连接上了 192.168.1.175 服务器的 6377 端口.192.168.1.175:6
Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用。在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法。下面将Redis提供的命令做一总结。官网命令列表:http://redis.io/commands(英文)1、连接操作相关的命令quit:关闭连接(connection)auth:简单密码认证2、对value操作的命令exists(key):确认一个key是否存在del(key):删除一个keytype(key):返回值的类型keys(pattern):返回满足给定pattern的所有keyrandomk
mac 上安装 redis 首先必须保证mac 已经安装 xcode.因为make时要用到Xcode 的command Tools .(1)下载 redis http://redis.googlecode.com/files/redis-2.8.7.tar.gz解压到当前目录.(2)你也可以在终端下载:curl-Ohttp://redis.googlecode.com/files/redis-2.8.7.tar.gz
sudotar-zxfredis-2.8.7.tar.gz(3)修改文件夹名,编译mvredis-2.8.7redis
cdredis/
sudomake
sudomaketes