<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[伊始的博客]]></title><description><![CDATA[时光流逝  岁月静好]]></description><link>https://blog.youkuaiyun.com/njys1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; njys1]]></copyright><item><title><![CDATA[闲来无事]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/100629100</link><guid>https://blog.youkuaiyun.com/njys1/article/details/100629100</guid><author>njys1</author><pubDate>Sun, 08 Sep 2019 15:29:54 +0800</pubDate><description><![CDATA[突然想说、喜欢安姐、????、优秀的那么自然、还有那么许多一直优秀的人、读读你们的故事、思考下自己的人生、是啊、对错并不重要、关键是成长和思考
希望所有人都能按照自己的意愿过一生
------- 杂谈 -------
最近在看了些电视剧、射雕英雄传、很多自己喜欢的角色、可能每个人都不完美、但刻画的是那么的真实
黄蓉 机敏、博学、善良、调皮、黄小邪 哈哈哈~、总是特别的机智
郭靖 老实、有点儿木讷、小事听...]]></description><category></category></item><item><title><![CDATA[多级缓存]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933726</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933726</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:33:57 +0800</pubDate><description><![CDATA[多级缓存


基本概念
如何缓存数据
分布式缓存与应用负载均衡
热点数据与更新缓存
缓存崩溃与快速修复


基本概念
1. 什么是多级缓存
   是指在整个系统架构的不同系统层级进行数据缓存、以提高访问效率
   一般会使用nginx本地缓存解决热点缓存问题
   使用分布式缓存减少访问回源率
   使用tomcat堆缓存用于防止缓存失效/崩溃之后的冲击


如何缓存数据
1. 过期与不过期
  ...]]></description><category></category></item><item><title><![CDATA[应用缓存]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933719</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933719</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:33:10 +0800</pubDate><description><![CDATA[应用级别的缓存


基本概念
回收策略
java缓存类型
多级缓存


基本概念
缓存命中率：从缓存查到的次数 / 查询总次数(缓存查询次数+快慢设备中读取的次数)
SOR：system of record记录系统、或者可以叫数据源、即实际存储原始数据的系统
Cache：缓存、是SOR的快照数据、cache的访问速度比SOR要快、放入cache的目的是提升访问速度、减少回源到SOR的频次
回源：c...]]></description><category></category></item><item><title><![CDATA[http缓存]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933714</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933714</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:32:43 +0800</pubDate><description><![CDATA[http缓存


缓存参数说明
缓存头小记


缓存参数说明
 last-modified: 表示文档的最后修改时间、当去服务器验证时会用到这个时间
 expires: http/1.0 规范定义、表示文档在浏览器的中的过期时间、当缓存内容时间超过这个时间、需要重新去服务器获取最新的内容
 cache-control：http/1.1定义、表示浏览器缓存控制、max-age=20表示文档可以在浏览...]]></description><category></category></item><item><title><![CDATA[站点隔离]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933709</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933709</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:31:40 +0800</pubDate><description><![CDATA[隔离相关


线程隔离
进程隔离
集群隔离
机房隔离
读写隔离
动静隔离
爬虫隔离
热点隔离
资源隔离



隔离是指将系统或者资源区分开、是为了在系统发生故障时、限定传播的范围、或者减少资源竞争或者保证服务间不相互影响

线程隔离
主要是指线程池隔离、在实际使用时、会把请求分类、然后交给不同的线程池处理、当一种业务出现问题时、不会讲故障扩散

进程隔离
一般是随业务发展、从0到1 的过程、不会开...]]></description><category></category></item><item><title><![CDATA[队列]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933705</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933705</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:31:09 +0800</pubDate><description><![CDATA[队列


解决什么问题
常见场景


解决什么问题
很多场景下、我们没必要保证强一致性、只需要保证最终一致性即可、
eg. 不用所有的结果都实时反馈给用户、不是所有的请求都必须一次性处理成功、不用所有的依赖方都处理完毕
此时、可以考虑使用消息队列

但要保证消息处理的有序性、及重复消费的幂等性、

常见场景
1. 异步处理: 使用队列的一个主要原因是异步处理、
           eg. 在用户...]]></description><category></category></item><item><title><![CDATA[如何扩容]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933700</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933700</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:30:17 +0800</pubDate><description><![CDATA[如何扩容


概述
单体应用扩容
应用拆分
数据库拆分
数据库分库分表
数据异构


概述
1. 对发展初期的系统来说、不太确定商业模型是否可行、最好的办法是按照最小可行产品方法进行验证、刚开始功能可能比较少、是一个比较大的单体应用、一般按照3层架构来开发、使用单数据库、缓存也是可选组件、而应用系统和数据库也很可能部署在同一台物理机上

那么、网站流量增加时怎么办 ？
1) 第一步肯定是扩容来解决...]]></description><category></category></item><item><title><![CDATA[限流]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933694</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933694</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:29:41 +0800</pubDate><description><![CDATA[限流详解


Why &amp;amp; What
限流算法
应用级限流
分布式限流
降级预案


Why &amp;amp; What
1. 开发高并发系统时、有很多手段来保护系统、如：缓存、降级和限流等
缓存的目的是提高系统访问速度和增大系统处理能力、可谓是高并发系统的银弹

而降级是当服务出问题或者影响到核心流程的性能、需要暂时屏蔽掉、待高峰过去后再打开的场景
而有些场景并不能使用缓存或降级来解决、eg. ...]]></description><category></category></item><item><title><![CDATA[超时与重试.md]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933689</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933689</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:28:59 +0800</pubDate><description><![CDATA[超时与重试


profile
超时分类


profile
很多故障是超时引起的、eg. 若应用不设置超时、则可能会导致请求响应慢、慢请求积累会导致连锁反应、甚至造成应用雪崩、而有些中间件或者框架在超时后进行重试(eg. 重试设置两次)、读服务天然适合重试、而写服务太多不能重试(eg. 写订单、如果写服务是幂等的、则重试是允许的)、重试次数太多、会导致多倍流量请求、模拟了ddos攻击、后果可能是...]]></description><category></category></item><item><title><![CDATA[负载均衡与反向代理]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933678</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933678</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:28:22 +0800</pubDate><description><![CDATA[负载均衡与反向代理


upstream配置
负载均衡算法
失败重试
健康检查
其它配置
长连接
http反向代理示例
Nginx四层负载均衡


upstream配置
upstream backend{
    server 192.268.61.1:9090 weight=1;
    server 192.268.61.1:9091 weight=2;
}

upstream 的主配置
ip...]]></description><category></category></item><item><title><![CDATA[系统设计原则]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82933672</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82933672</guid><author>njys1</author><pubDate>Wed, 03 Oct 2018 20:27:35 +0800</pubDate><description><![CDATA[

高并发原则
高可用原则
业务设计原则


高并发原则
1. 无状态
   若应用无状态、方便水平扩展、则要保证配置服务有状态
   eg. 不同的机房需要读取不同的数据源、此时可以通过配置中心指定

2. 拆分
   拆分不是必须的、可以根据系统流量和人员状况来进行
   1) 系统维度
      eg. 订单、购物车、结算等可以拆分成不同的服务
   2) 功能维度
      eg. 优...]]></description><category></category></item><item><title><![CDATA[Redis4 - 管理]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82795893</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82795893</guid><author>njys1</author><pubDate>Fri, 21 Sep 2018 07:35:31 +0800</pubDate><description><![CDATA[

Redis管理
备份和恢复
监控内存


Redis管理
    1. 从指定config加载一个服务
      redis-server conf/redis.conf
      redis-server 可以为绝对路径、配置路径也可以为绝对路径
      eg. /usr/local/bin/redis-server ~/build/redis4.0.1/conf/redis-637...]]></description><category></category></item><item><title><![CDATA[Redis4 - 生产环境部署]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82795886</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82795886</guid><author>njys1</author><pubDate>Fri, 21 Sep 2018 07:31:25 +0800</pubDate><description><![CDATA[

linux 部署
安全
配置客户端连接
内存管理
基准测试


linux 部署
    1. 设置内存相关的参数
       sudo sysctl -w vm.overcommit_memory=1
       sudo sysctl -w vm.swappiness=0

       可以使用
       echo vm.overcommit_memory=1 &amp;gt;&amp;gt; ...]]></description><category></category></item><item><title><![CDATA[Redis4 - 高可用]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82795884</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82795884</guid><author>njys1</author><pubDate>Fri, 21 Sep 2018 07:30:51 +0800</pubDate><description><![CDATA[

复制
复制优化
sentinel
cluster


复制
    info replication 检测复制关系
    master_replied 标记主实例
    master_repl_offset 是复制流中的一个偏移量标记、会随着主实例上的数据事件的发生而增长

    完全同步：
    将所有数据复制到rdb文件、然后发送给从实例、
    从实例接收到rdb文件后、会先将...]]></description><category></category></item><item><title><![CDATA[Redis4 - 持久化]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82795883</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82795883</guid><author>njys1</author><pubDate>Fri, 21 Sep 2018 07:30:16 +0800</pubDate><description><![CDATA[

rdb
aof


rdb
    eg. save 900 1 若900s内有一个键发生改变、则进行持久化存储
    1. save 会使用主线程进行同步转储、
       bgsave是创建一个子进程进行存储

    2. save会阻塞服务器
       bgsave、redis主进程会创建一个子进程将转储数据保存到一个temp-%s.rdb 的临时文件中、
       转储完...]]></description><category></category></item><item><title><![CDATA[Redis4 - 应用]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82795882</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82795882</guid><author>njys1</author><pubDate>Fri, 21 Sep 2018 07:29:46 +0800</pubDate><description><![CDATA[

常见场景
存储优化
其它


常见场景
    1. 会话存储. web server负载均衡之后、可以使用redis统一进行会话存储
    2. 数据统计. eg. 有多少人查看xx
    3. 排行榜. 可以使用sorted set实现
    4. 队列. 不支持持久化
    5. 最新的N个记录. 可以使用list实现
    6. 通常使用的缓存服务器

存储优化
    1....]]></description><category></category></item><item><title><![CDATA[Redis4 - 编译安装&连接]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82795879</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82795879</guid><author>njys1</author><pubDate>Fri, 21 Sep 2018 07:29:13 +0800</pubDate><description><![CDATA[

下载安装
redis连接
redis信息查询


下载安装

1. 源码下载   
   https://redis.io/  目前最新版本 4.11 
   
2. 解压到指定文件夹
   eg. 我的放到 ~/build下

3.  编译 &amp;amp; 安装
    cd ~/build/redis-4.0.11
    
    新建配置文件夹
    mkdir conf

    将配...]]></description><category></category></item><item><title><![CDATA[Redis4 - 数据特性]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82795877</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82795877</guid><author>njys1</author><pubDate>Fri, 21 Sep 2018 07:28:19 +0800</pubDate><description><![CDATA[

位图
设置键的过期时间
排序
pipeline
redis事务
发布订阅
使用lua脚本


位图
  1. 位图的底层数据实现是字符串
  2. setbit 设置比特位
     eg. setbit &amp;quot;user_reading&amp;quot; 400 1
     设置相应的bit位

     gitbit &amp;quot;user_reading&amp;quot; 400
     获取bit位

     bitcount ...]]></description><category></category></item><item><title><![CDATA[Redis4 - 数据类型]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82795876</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82795876</guid><author>njys1</author><pubDate>Fri, 21 Sep 2018 07:27:44 +0800</pubDate><description><![CDATA[

get &amp;amp;amp; set
list
hash
set
sorted set
HyperLogLog
geo对象
键管理
疑问


get &amp;amp;amp; set
 redis里最常用的命令了 set {{key}} {{val}} | get {{key}}
 注意一些小问题:
 set 已存在的键、会将原值覆盖、若不想被覆盖、可以使用setnx
 mset &amp;amp;amp; mget 可以一次获取或...]]></description><category></category></item><item><title><![CDATA[Redis4 - README.md]]></title><link>https://blog.youkuaiyun.com/njys1/article/details/82795874</link><guid>https://blog.youkuaiyun.com/njys1/article/details/82795874</guid><author>njys1</author><pubDate>Fri, 21 Sep 2018 07:27:06 +0800</pubDate><description><![CDATA[

一些说明
书籍资源


一些说明
除特别说明外、本系列文档都是针对 redis 4.x 的版本
是读书笔记、希望分享出来、可能提炼度不够、还望有缘路过的朋友切莫要求太高~~.~~
书籍：Redis-4.x CookBook

书籍资源
代码git托管地址：
https://github.com/PacktPublishing/Redis-4.x-Cookbook

书中相关图文：
https:...]]></description><category></category></item></channel></rss>