静谧阳光
码龄10年
关注
提问 私信
  • 博客:79,118
    79,118
    总访问量
  • 66
    原创
  • 1,736,230
    排名
  • 16
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2014-08-12
博客简介:

刘阳的博客

查看详细资料
个人成就
  • 获得23次点赞
  • 内容获得5次评论
  • 获得90次收藏
创作历程
  • 1篇
    2021年
  • 19篇
    2018年
  • 54篇
    2017年
成就勋章
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

175人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

ElasticSearch基本原理

一.ES基本概念介绍1.ES简介ES是一个分布式、可扩展的、近实时的数据搜索、分析与存储引擎。支持全文搜索、结构化搜索、半结构化搜索、数据分析、地理位置和对象间关联关系搜索等功能。其底层基于Lucene,但Lucene比较复杂,面向普通应用开发者而言,易用性不是很好,同时对于目前的主流分布式架构支持也不好,所以就诞生了ES。ES使用Java编写,它的内部使用Lucene做索引与搜索,隐藏了Lucene的复杂性,面向开发者暴露了一套即使是不同编程语言也基本一致的API和client,方便大家将搜索功能
原创
发布博客 2021.09.09 ·
4910 阅读 ·
3 点赞 ·
0 评论 ·
33 收藏

java中String.intern的坑

空闲时间,一个好友发过来一段代码很有意思,运行的结果比较诡异,代码很简单,三两行,详细如下:StringBuilder sb = new StringBuilder();String str = sb.append("a").toString();System.out.println(str.intern() == str);执行代码,输出结果为false,还可以接受,不过再换下面这...
原创
发布博客 2018.08.28 ·
1635 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

linux awk命令介绍

通常来说 我们使用grep即可满足我们大多数的需求了,但是还是有一些情况,grep是解决不了问题的,如我们的日志中有服务的响应时间,想过滤出响应时间超过200ms掉日志,这时候用grep就很难做到了。所以,很多时候我们还会使用到awk命令,awk命令是一个功能十分强大的命令,学会awk命令对我们解决问题有很大帮助。说到这里可能有人会想到sed命令,sed命令常常作用于一整行的处理,awk则比较倾向...
原创
发布博客 2018.06.02 ·
1952 阅读 ·
2 点赞 ·
1 评论 ·
4 收藏

linux正则表达式

正则表达式在linux中是非常重要的一环,很多时候我们需要通过正则表达式来达到我们的目的,如分析日志,过滤数据等。有过开发经验的同学都会和grep打交道,我们处理问题最常用的方法就是查看日志,那么多日志我们不可能一行一行看,所以我们通常会使用grep命令+正则表达式获取我们想要的数据,常见的如异常信息。一.grep命令基本介绍学习正则表达式之前还是简单介绍下grep命令,grep命令后面可以接 -...
原创
发布博客 2018.06.02 ·
301 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

shell学习指南

shell脚本是我们开发中经常需要用到的技能之一,我们经常在线上服务器执行脚本,比如服务启动脚本,所以掌握shell也是我们必备技能之一。下面先介绍下学习shell脚本之前一些需要了解的知识。一.shell下的变量变量对于程序员来说一定不会陌生,java中变量的使用频率也是非常高的。不过shell下的变量却有一些特殊的设置规则,下面来了解下。我们可以使用echo命令来显示变量,但是变量在被显示时,...
原创
发布博客 2018.05.19 ·
229 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux必会命令

我们线上机器都是linux系统,所以linux命令是我们必备技能之一。这里会梳理下我们日常开发中必备或者常用的命令,对linux命令做一个简单的汇总及介绍。一.文件权限相关使用背景之前我认为我们平时不会用到权限相关命令,直到一次一个其他组的同学需要读取我们一个目录下的日志信息,当时的权限对于其他用户是不可读的,所以有时候我们会需要使用权限相关命令。常见命令:1.chmod 改变文件的权限 使用如下...
原创
发布博客 2018.05.19 ·
1126 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

HttpServletRequest读取数据body为空的问题

最近新换了一个工作,节奏刚刚调整过来,这段时间没有写东西,有点惭愧,后续还是要回归正确的节奏,争取一周至少一篇。本篇记录下新工作中第一次上线踩到的一个坑,这个坑如果之前没有踩过,真的很难发现,在此记录一下,提醒下其他人避免重复犯错。问题背景本次需求有一项需要区分压测来源的数据,将压测的日志单独区分,不要打到线上正常日志中。这里比较简单,从request的header或者parameter中获取下压...
原创
发布博客 2018.04.18 ·
11490 阅读 ·
3 点赞 ·
1 评论 ·
7 收藏

排序算法之快速排序

快速排序可能是目前使用最广泛的排序算法了。快速排序流行的原因是它实现简单,适用于各种不同的输入数据且在一般应用中都要比其他排序算法快得多。快速排序的优点包括它是原地排序的,且将长度为N的数组排序所需时间和NlogN成正比。另外,快速排序的内循环比大多数排序算法都要短,这意味着无论是理论上还是实际上,快速排序都很快。基本算法快速排序是一种基于分治思想的排序算法。它将一个数组分成两个子数组,将两部分独...
原创
发布博客 2018.02.26 ·
231 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

排序算法之归并排序

归并排序是排序算法中比较常用的排序算法,Java里Collections.sort排序方法内部实现在一定场景下就是使用归并排序来实现的。归并排序的核心思想是我们常说的分而治之,是分治的典型应用。归并排序的基本思想是:要将一个数组进行排序,可以先将它递归的分成两半数组分别排序,然后将结果归并起来。归并排序最吸引人的性质是它能够将任意长度为N的数组排序所需时间和NlogN成正比,它的主要缺点是需要的空...
原创
发布博客 2018.02.26 ·
344 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

基础排序算法学习

在一次面试之后,觉得自己的算法能力还是偏弱,虽然常用的排序,查找算法都比较熟悉,不过面试的时候问了一个算法题,思路跑偏了没答上来,题的内容是找出一个字符串中有多少回文子串,还是比较有难度的。接下来的一段时间,想加强一下自己的算法能力,弥补下自己的不足,也希望这一段时间的算法学习会比较有收获,最后的目标是算法的灵活使用,能通过算法解决实际问题最好。先从排序算法开始学习一.选择排序选择排序在排序算法中...
原创
发布博客 2018.02.12 ·
186 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis实现分布式锁

前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保
转载
发布博客 2018.01.30 ·
161 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

Redis的事务详解

Redis通过multi,exec,watch命令来实现事务的功能。事务提供了一种将多个命令请求打包,然后一次性,按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而改去执行其他客户端的命令请求。下面来看看Redis中事务的实现原理。一.事务的实现一个事务从开始到结束会经历三个阶段:事务开始,命令入队,事务执行。1.事务开始Redis提供multi命令标志着事务的开
原创
发布博客 2018.01.08 ·
247 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis复制实现原理

我们可以通过Redis提供的slaveof命令让一个服务器去复制另一个服务器,我们成被复制的服务器为主服务器,进行复制的服务器称为从服务器。那么Redis是如何实现服务器复制的呢?主从服务器之间如何保持数据一致性的呢?一.Redis复制功能的实现Redis的复制功能分为同步和命令传播,同步用于将从服务器的数据库状态更新至主服务器当前数据库状态;命令传播用于主服务器状态修改时,传播命令到从服
原创
发布博客 2018.01.08 ·
308 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis中的事件机制

Redis服务器是一个事件驱动程序,服务器需要处理两类事件:文件事件和时间事件。文件事件主要指客户端向服务器发送命令,如连接命令,读命令以及写命令等。时间事件指的是定时执行的任务,如serverCron函数。一.文件事件Redis基于Reactor模式开发了自己的网络时间处理器,称为文件事件处理器。文件事件处理器使用I/O多路复用程序同时监听多个套接字,并根据套接字目前执行的任务为套接字关
原创
发布博客 2018.01.08 ·
1049 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Redis的AOF持久化详解

Redis提供了AOF持久化功能,大多数情况下,AOF持久化的频率要比RDB持久化执行频率更高,所以AOF持久化记录的数据要比RDB文件记录的数据更新一些。AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。一.AOF持久化的实现AOF持久化功能的实现可以分为命令追加,文件写入,文件同步三个步骤。1.命令追加当AOF持久化功能处于打开状态时,服务器在执行完一个写
原创
发布博客 2018.01.07 ·
527 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis的RDB持久化详解

我们知道Redis的数据是存在内存中的,那么就会有一个问题,如果突然宕机了或者故障了,Redis的数据就会全部消失了,为了不让数据丢失,我们需要将数据写到磁盘文件里面,这样当机器回复时可以还原数据,RDB就是Redis持久化的方法之一。RDB持久化既可以手动执行,也可以根据服务器配置自动执行。RDB持久化功能生成的RDB文件是一个经过压缩的二进制文件,通过该文件可以还原生成的RDB文件时的数据
原创
发布博客 2018.01.07 ·
445 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis数据库的实现原理

知道了Redis的各种数据结构,对象结构,那么Redis是如何保存数据的,又是如何操作数据的呢,Redis里面的命令是怎么实现的呢?这一系列问题值得我们思考一.Redis维护多个数据库Redis内部维护一个db数组,每个db都是一个数据库,默认情况下Redis会创建16个数据库。我们可以通过select命令来切换数据库,如select 1切换到数据库号为1的数据库。select实现是通过修
原创
发布博客 2018.01.07 ·
6044 阅读 ·
1 点赞 ·
0 评论 ·
10 收藏

Redis中的对象详解

上文介绍了Redis底层的几个数据结构,接下来可以看看Redis中的字符串,链表,集合,哈希表,有序集合是怎么实现的了,这几种类型的对象都用了之前介绍的至少一种数据结构。Redis通过定义这五种不同类型的对象,可以在执行命令之前,根据对象的类型判断一个对象是否可以执行给定的命令。下面我们看下Redis中对象的结构Redis对象主要包括type属性(说明对象是五种中的哪种类型),encodi
原创
发布博客 2018.01.07 ·
452 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis底层数据结构详解

我们知道Redis提供了五种数据结构:字符串,链表,集合,哈希表,有序集合这五种结构,并提供了各自的api接口供我们操作。虽然我们经常使用Redis提供的各种api,但是我们很少知道Redis底层是如何实现这几种结构的,接下来一起看下Redis底层的几种数据结构,这几种数据结构在很多Redis核心功能上随处可见。一.简单动态字符串Redis底层使用C语言编写,所以大多数人都会以为Redis
原创
发布博客 2018.01.07 ·
2104 阅读 ·
2 点赞 ·
0 评论 ·
6 收藏

系统过载保护机制

最近我们组自己开发了一个过载保护服务,用来解决服务或者站点过载导致系统雪崩的问题,最近看了下底层实现,还是很有参考意义的,接下来介绍下过载保护的功能和原理。一.过载保护的作用我们这里开发的过载保护的主要目的是:避免服务中的某个接口调用堆积导致的整个服务不可用,这里调用堆积的原因可能有两个1.某个接口的访问量突然增大,达到了平时高峰调用量的几倍乃至几十倍。产生的原因可能为产品加了个类似于
原创
发布博客 2018.01.06 ·
2513 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏
加载更多