<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[无怨无悔专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sdmxdzb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sdmxdzb]]></copyright><item><title><![CDATA[redis cluster]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/105150867</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/105150867</guid><author>sdmxdzb</author><pubDate>Fri, 27 Mar 2020 21:39:53 +0800</pubDate><description><![CDATA[官方集群方案

redis cluster是Redis的分布式集群解决方案，在3.0版本推出后有效地解决了redis分布式方面的需求
实现了数据在多个Redis节点之间自动分片、故障自动转移、扩容机制等功能。



集群关心的问题

1 、增加了 slot 槽的计算，是不是比单机性能差？
共16384个槽，slots槽计算方式公开的， HASH_SLOT = CRC16(key) mod 16...]]></description><category></category></item><item><title><![CDATA[redis哨兵机制]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/105150403</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/105150403</guid><author>sdmxdzb</author><pubDate>Fri, 27 Mar 2020 21:29:08 +0800</pubDate><description><![CDATA[哨兵机制核心作用



核心操作流程



哨兵的配置

启动命令： redis-server sentinel.conf --sentinel


# 配置文件在sentinel运行期间是会被动态修改的
# sentinel如果重启时，就可以根据这个配置来恢复其之前所监控的redis集群的状态
# 绑定IP
bind 0.0.0.0
# 默认yes，没指定密码或者指定IP的情况下，外网无法访问...]]></description><category></category></item><item><title><![CDATA[redis 主从集群]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/105142635</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/105142635</guid><author>sdmxdzb</author><pubDate>Fri, 27 Mar 2020 15:53:58 +0800</pubDate><description><![CDATA[主从复制



主从复制解决什么问题：

redis-server单点故障
	 单节点QPS有限
	 持久化，从处理持久化，避免对主性能影响
主从复制应用场景分析

读写分离场景，规避redis单机瓶颈
	故障切换，master出问题后还有slave节点可以使用
搭建主从复制

1.第一种方式：命令

# 连接需要实现从节点的redis，执行下面的命令
slaveof [ip] [...]]></description><category></category></item><item><title><![CDATA[redis的机制（2）]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/105136728</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/105136728</guid><author>sdmxdzb</author><pubDate>Fri, 27 Mar 2020 11:31:01 +0800</pubDate><description><![CDATA[redis持久化机制

    redis的数据都存放在内存中，如果没有配置持久化机制，重启之后就会全丢失了。需要开启持久化机制，将数据保存到磁盘上，当redis重启后，可以从磁盘上恢复。

  两种持久化方式RDB和AOF

RDB

  在指定时间内对数据记性快照保存，会缺失部分数据。

 恢复方式 ：

  1.client端直接用命令BGSAVE或者SAVE创建...]]></description><category></category></item><item><title><![CDATA[redis基本类型(1)]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/105135937</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/105135937</guid><author>sdmxdzb</author><pubDate>Fri, 27 Mar 2020 10:58:10 +0800</pubDate><description><![CDATA[redis介绍

  Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, so...]]></description><category></category></item><item><title><![CDATA[mysql分库分表解决方案思路]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/105133683</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/105133683</guid><author>sdmxdzb</author><pubDate>Fri, 27 Mar 2020 09:15:12 +0800</pubDate><description><![CDATA[垂直拆分



水平拆分



分库分表解决方案

技术方案：proxy或应用层

proxy: mycat-cobar(社区), atlas(数字),heinsberge(百度),vitess(youtube)

应用层：sharding-jdbc(当当)，TDDL(阿里)



拆分的原则

能不拆分尽量不拆分
	如果要拆分一定要选择合适的拆分规则，提前规划好
	数据拆分尽量通过数据冗余或...]]></description><category></category></item><item><title><![CDATA[mysql数据库设计规范和优化]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/105133178</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/105133178</guid><author>sdmxdzb</author><pubDate>Fri, 27 Mar 2020 08:34:18 +0800</pubDate><description><![CDATA[数据库的设计

1、数据库命名规范

•所有的数据库对象名称必须使用小写字母并使用下划线分割(mysql 数据库对大小写敏感)

•所有数据库对象名称禁止使用MySqL保留关键字 eg. from关键字 

•MySQL关键字查询

•数据库对象的命名要见名之意 , 最好不要超过32个字符.

•数据库操作的时候 ,总会导入导出表 , 有一些临时表 , 临时表的最好以tmp为前缀并且以日期为后缀...]]></description><category></category></item><item><title><![CDATA[session、jwt、token]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/105120491</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/105120491</guid><author>sdmxdzb</author><pubDate>Thu, 26 Mar 2020 15:50:26 +0800</pubDate><description><![CDATA[什么是JWT

   Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准（(RFC 7519).该token被设计为紧凑且安全的，特别适用于分布式站点的单点登录（SSO）场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息，以便于从资源服务器获取资源，也可以增加一些额外的其它业务逻辑所必须的声明信息，该to...]]></description><category></category></item><item><title><![CDATA[lucene 搜索详解（4）]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104971338</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104971338</guid><author>sdmxdzb</author><pubDate>Thu, 19 Mar 2020 17:54:02 +0800</pubDate><description><![CDATA[搜索流程





搜索代码示例


package com.dongsheng.lucene.dslucene.lucene;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.core.SimpleAnalyzer;
import org.apache.lucene.document....]]></description><category></category></item><item><title><![CDATA[Lucene-索引详解（3）]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104968178</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104968178</guid><author>sdmxdzb</author><pubDate>Thu, 19 Mar 2020 16:43:08 +0800</pubDate><description><![CDATA[IndexWriter详解

 创建API详解图示



 代码示例


import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.core.SimpleAnalyzer;
import org.apache.lucene.document.Document;
import org.apache....]]></description><category></category></item><item><title><![CDATA[Lucene-分词器（2）]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104959975</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104959975</guid><author>sdmxdzb</author><pubDate>Thu, 19 Mar 2020 09:31:49 +0800</pubDate><description><![CDATA[Lucene-分词器API

1. org.apache.lucene.analysi.Analyzer

 分析器，分词器组件的核心API，它的职责：构建真正对文本进行分词处理的TokenStream（分词处理器）。通过调用它的如下两个方法，得到输入文本的分词处理器。

  public finalTokenStreamtokenStream(StringfieldName,...]]></description><category></category></item><item><title><![CDATA[lucene 介绍（1）]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104959742</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104959742</guid><author>sdmxdzb</author><pubDate>Thu, 19 Mar 2020 09:10:01 +0800</pubDate><description><![CDATA[由于之前项目中用到了全文检索的，总结下lucene的大概功能，也能帮助其它童鞋更好的学习。

Lucene简介



最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎，部分文本分词引擎（英文与德文两种西方语言）。Lucene的目的是为软件开发人员提供一个简单易用的工具包，以方便在目标系统中实现全文检索功能，或者是以此为基础建立起完整的全文检索引擎。

是Apache的...]]></description><category></category></item><item><title><![CDATA[Spring boot 启动过程工作原理]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104896583</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104896583</guid><author>sdmxdzb</author><pubDate>Mon, 16 Mar 2020 12:35:52 +0800</pubDate><description><![CDATA[1. SpringBootApplication rum()方法


@SpringBootApplication //注解
public class SpringBootTestApplication{
​
    public static void main(String[] args) {
        ConfigurableApplicationContext context =...]]></description><category></category></item><item><title><![CDATA[Java堆内存是线程共享的?]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104768341</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104768341</guid><author>sdmxdzb</author><pubDate>Tue, 10 Mar 2020 10:17:00 +0800</pubDate><description><![CDATA[Java作为一种面向对象的，跨平台语言，其对象、内存等一直是比较难的知识点，所以，即使是一个Java的初学者，也一定或多或少的对JVM有一些了解。可以说，关于JVM的相关知识，基本是每个Java开发者必学的知识点，也是面试的时候必考的知识点。

在JVM的内存结构中，比较常见的两个区域就是堆内存和栈内存（如无特指，本文提到的栈均指的是虚拟机栈），关于堆和栈的区别，很多开发者也是如数家珍，有很多书籍...]]></description><category></category></item><item><title><![CDATA[HashMap put如何存储元素的？]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104690302</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104690302</guid><author>sdmxdzb</author><pubDate>Fri, 06 Mar 2020 10:54:30 +0800</pubDate><description><![CDATA[1.HashMap重要成员属性


/**
     * The default initial capacity - MUST be a power of two.
      默认的初始化容量 2的幂等次方
     */
    static final int DEFAULT_INITIAL_CAPACITY = 1 &lt;&lt; 4; // aka 16

    /**
     ...]]></description><category></category></item><item><title><![CDATA[redis 漏桶算法—Lua]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104590897</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104590897</guid><author>sdmxdzb</author><pubDate>Sun, 01 Mar 2020 13:35:54 +0800</pubDate><description><![CDATA[漏桶算法




import java.io.IOException;
import java.nio.charset.Charset;

import org.springframework.core.io.ClassPathResource;
import com.google.common.io.Files;
import redis.clients.jedis.Jedis;

/*...]]></description><category></category></item><item><title><![CDATA[redis 令牌桶算法—Lua]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104590559</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104590559</guid><author>sdmxdzb</author><pubDate>Sun, 01 Mar 2020 13:22:01 +0800</pubDate><description><![CDATA[令牌桶算法



场景:秒杀（也可以用于平滑限流某个接口请求）


import java.io.IOException;
import java.nio.charset.Charset;
import org.springframework.core.io.ClassPathResource;
import com.google.common.io.Files;
import redis.cli...]]></description><category></category></item><item><title><![CDATA[Redis数据备份和重启恢复]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104475622</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104475622</guid><author>sdmxdzb</author><pubDate>Mon, 24 Feb 2020 12:54:44 +0800</pubDate><description><![CDATA[一、对Redis持久化的探讨与理解

目前Redis持久化的方式有两种： RDB 和 AOF

首先，我们应该明确持久化的数据有什么用，答案是用于重启后的数据恢复。
Redis是一个内存数据库，无论是RDB还是AOF，都只是其保证数据恢复的措施。
所以Redis在利用RDB和AOF进行恢复的时候，都会读取RDB或AOF文件，重新加载到内存中。

RDB就是Snapshot快照存储，是默认的持久化方...]]></description><category></category></item><item><title><![CDATA[MySQL优化]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104442582</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104442582</guid><author>sdmxdzb</author><pubDate>Sat, 22 Feb 2020 14:41:47 +0800</pubDate><description><![CDATA[之前看了一段时间关于MySQL优化方面的资料，虽然不是专业的DBA,但这些足以在日常工作中能够快速解决sql优化的问题。不过，发现无论什么时候，都缺少不了数据结构的出现。

1.慢查询日志

     每个公司都会有自己的日志监控系统，可以通过监控系统速度定位慢查询的日志。如图：





 当然，一些公司可能没有那么多的资源，可能会没有。另一中方式我也会告诉大家。

 ...]]></description><category></category></item><item><title><![CDATA[Netty Reactor 线程模型（随记）]]></title><link>https://blog.youkuaiyun.com/sdmxdzb/article/details/104424064</link><guid>https://blog.youkuaiyun.com/sdmxdzb/article/details/104424064</guid><author>sdmxdzb</author><pubDate>Fri, 21 Feb 2020 11:26:47 +0800</pubDate><description><![CDATA[Netty被称为一个高性能、高可扩展性能的异步事件驱动的网络应用程序框架，它极大地简化了TCP和UDP客户端和服务器开发等网络编程。

   Netty的Reactor模型中有四个核心概念：

Resources资源（请求和任务）
	Synchronous Event Demultiplexer同步事件复用器
	Dispatcher 分配器
	Request Hand...]]></description><category></category></item></channel></rss>