竹山一叶

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  390 随笔 :: 0 文章 :: 0 评论 :: 192万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

11 2016 档案

摘要:摘自传智博客课程 该值 且 空闲连接>最大空闲连接数 时直接释放 --> ... 阅读全文
posted @ 2016-11-30 14:39 竹山一叶 编辑

摘要:一、前言 因为近期项目中开始使用Redis,为了更好的理解Redis并应用在适合的业务场景,需要对Redis设计与实现深入的理解。我分析流程是按照从main进入,逐步深入分析Redis的启动流程。同时根据Redis初始化的流程,理解Redis各个模块的功能及原理。二、redis启动流程1.初始化server变量,设置redis相关的默认值2.读入配置文件,同时接收命令行中传入的参数,替换服务器设置... 阅读全文
posted @ 2016-11-30 14:29 竹山一叶 编辑

摘要:由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用。Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以到100GB、200GB的规模,但是单实例模式限制了Redis没法满足业务的需求(例如新浪微博就曾经用Redis存储了超过1TB的数据)。Redis的开发者Antirez早在博客上就提出在Redis 3.0版本中加入集群的功能,但3.0版本等到2015年才发布正... 阅读全文
posted @ 2016-11-29 17:00 竹山一叶 编辑

摘要:常用命令列表DBSIZE 返回当前数据库 Key 的数量INFO 返回当前 Redis 服务器状态和一些统计信息SAVE RD... 阅读全文
posted @ 2016-11-29 15:07 竹山一叶 编辑

摘要:Redis容灾部署(哨兵Sentinel)哨兵的作用1. 监控:监控主从是否正常2. 通知:出现问题时,可以通知相关人员3. 故障迁移:自动主从切换4. 统一的配置管理:连接者询问sentinel取得主从的地址Raft分布式算法1. 主要用途:用于分布式系统,系统容错,以及选出领头羊2. 作者:Diego Ongaro,毕业于哈佛3. 目前用到这个算法的项目有:a. CoreOS : 见下面b. ... 阅读全文
posted @ 2016-11-28 17:24 竹山一叶 编辑

摘要:Sentinel介绍Redis的 Sentinel 系统用于管理多个Redis服务器, 该系统执行以下三个任务: 监控(Monitoring) 提醒(Notification) 自动故障迁移(Automatic failover) Sentinel 是一个分布式系统,可以在一个架构中运行多个 Sentinel 实例,使用流言协议(gossip protocols)来接收关于主服务器是否下线... 阅读全文
posted @ 2016-11-27 21:38 竹山一叶 编辑

摘要:Redis主从同步命令和配置项启动主从复制:master无需任何操作,slave中使用以下任意一种开启复制功能(1).通过配置文件启动主从复制: 在redis.conf中加入“slaveof ” 如:在redis.conf中加入: slaveof 192.168.3.134 6379 (2).通过客户端启动参数启动主从复制: redis-server --port --sl... 阅读全文
posted @ 2016-11-26 21:58 竹山一叶 编辑

摘要:Jedis作为redis的最佳客户端,它提供了连接池的特性,“连接池”在通常情况下可以有效的提高应用的通信能力,并且这是一种良好的设计模式。Jedis的连接池设计基于apache commons-pool原生库,仅作了简单的封装;在本文中将介绍如何使用jedisPool进行程序设计。 一.连接池基本参数maxActive:链接池中最大连接数,默认为8maxIdle:链接池中最大空闲的连接数... 阅读全文
posted @ 2016-11-25 11:49 竹山一叶 编辑

摘要:1、Redis是什么1)Redis是REmote DIctionary Server的缩写,是一个key-value存储系统2)Redis提供了一些丰富的数据结构,包括Strings,Lists,Hashes,Sets和Ordered Sets以及Hashes。包括对这些数据结构的操作支持3)Redis可以替代Memcached,并且解决了断电后数据完全丢失的问题4)Redis官方网站: http... 阅读全文
posted @ 2016-11-24 14:13 竹山一叶 编辑

摘要:Redis 的作者 antirez(Salvatore Sanfilippo)曾经发表了一篇名为 Redis 宣言(Redis Manifesto)的文章,文中列举了 Redis 的七个原则,以向大家阐明 Redis 的思想。1、Redis 是一个操作数据结构的语言工具,它提供基于 TCP 的协议以操作丰富的数据结构。在 Redis 中,数据结构这个词的意义不仅表示在某种数据结构上的操作,更包括了... 阅读全文
posted @ 2016-11-24 09:36 竹山一叶 编辑

摘要:如果你在使用或者考虑使用Redis,可能你可以学习一下下面的一些建议,避免一下提到的问题:1.使用key值前缀来作命名空间虽然说Redis支持多个数据库(默认16个,可以配置更多),但是除了默认的0号库以外,其它的都需要通过一个额外请求才能使用。所以用前缀作为命名空间可能会更明智一点。另外,在使用前缀作为命名空间区分不同key的时候,最好在程序中使用全局配置来实现,直接在代码里写前缀的做法要严格避... 阅读全文
posted @ 2016-11-23 17:43 竹山一叶 编辑

摘要:首先应该明白报这个错误说明了你用的jedis方法与redis服务器中存储数据的类型存在冲突。例如:数据库中有一个key的数据存储的是Hash类型的,但是你使用jedis执行数据操作的时候却使用了非Hash的操作方法。此时就会报WRONGTYPE Operation against a key holding the wrong kind of value这个错误!问题解决:先执行一条如下命令:re... 阅读全文
posted @ 2016-11-22 22:08 竹山一叶 编辑

摘要:1.Redis是什么?十五分钟介绍 Redis数据结构Redis系统性介绍一个很棒的Redis介绍PPT强烈推荐!非同一般的Redis介绍Redis之七种武器锋利的Redisredis 适用场景与实现【翻译】Redis协议2.Redis内部实现Redis源码分析系列文章Redis运行流程源码解析Redis 2.6 Lua 脚本功能实现分析解密Redis持久化Redis核心解读系列Redis RDB... 阅读全文
posted @ 2016-11-22 10:06 竹山一叶 编辑

摘要:1. Memcached简介Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器。其本质上就是一个内存key-value数据库,但是不支持数据的持久化,服务器关闭之后数据全部丢失。Memcached使用C语言开发,在大多数像Linux、BSD和Solaris等POSIX系统上,只要安装了libeve... 阅读全文
posted @ 2016-11-21 22:50 竹山一叶 编辑

摘要:传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1、MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。 2、Memcache... 阅读全文
posted @ 2016-11-21 22:27 竹山一叶 编辑

摘要:Redis自己提供了一个性能测试工具redis-benchmark。redis-benchmark可以模拟N个机器,同时发送M个请求。用法:redis-benchmark [-h ] [-p ] [-c ] [-n [-k ]-h Server hostname (default 127.0.0.1) -p Server port (default 6379) -s... 阅读全文
posted @ 2016-11-20 22:38 竹山一叶 编辑

摘要:一、Redis的Replication: 这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了。相信在阅读完这篇Blog之后你也可以轻松做到。这里我们还是先列出一些理论性的知识,后面给出实际操作的案例。 下面的列表清楚的解释了Redis Replication的特点和优势。 1). 同一个Master可以同步多个Slaves。 2). Slave... 阅读全文
posted @ 2016-11-19 22:42 竹山一叶 编辑

摘要:# 守护进程模式# 默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes# 当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面daemonize yes# 当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/run/redis.pid 文件里面,但是你可以在这里自己制定它的文件位置p... 阅读全文
posted @ 2016-11-18 14:34 竹山一叶 编辑

摘要:1. 下载Redis-Windows版本Redis官网下载页面: http://redis.io/downloadWindows下Redis项目: https://github.com/MSOpenTech/redis在releases页面找到并下载最新的ZIP包: https://github.com/MSOpenTech/redis/releases2. 解压安装加压下载后的文件 Redi... 阅读全文
posted @ 2016-11-17 21:32 竹山一叶 编辑

摘要:下载链接地址:[官网地址:https://redisdesktop.com]redis-desktop-manager-0.8.8.384.exeSource code (zip)Source code (tar.gz)Redis Desktop Manager(RedisDesktopManager,RDM)是一个快速、简单、支持跨平台的 Redis 桌面管理工具,基于 Qt 5 开发,支持通过... 阅读全文
posted @ 2016-11-16 11:36 竹山一叶 编辑

摘要:Redis服务器设置密码后,使用service redis stop 会出现以下信息:service redis stopStopping ...OK(error) NOAUTH Authentication required.Waiting for Redis to shutdown ...Waiting for Redis to shutdown ...Waiting for Redis to... 阅读全文
posted @ 2016-11-16 11:13 竹山一叶 编辑

摘要:修改somaxconn该内核参数默认值一般是128(定义了系统中每一个端口最大的监听队列的长度),对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。echo 2048 > /proc/sys/net/core/somaxconn 但是这样系统重启后保存不了在/etc/sysctl.conf中添加如下net.core.somaxconn = 2048然后在终端中执行sys... 阅读全文
posted @ 2016-11-15 17:56 竹山一叶 编辑

摘要:启动错误(1)WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.(2)WARNING overcommit_memory is set to 0! Background save may fa... 阅读全文
posted @ 2016-11-15 17:56 竹山一叶 编辑

摘要:1、下载Redis3.2.5安装包 wget http://download.redis.io/releases/redis-3.2.5.tar.gz 2、解压、编译、安装redis-3.2.5:tar -zxvf redis-3.2.5.tar.gz -C /usr/src/cd /usr/src/redis-3.2.5/make && make install3、创建redi... 阅读全文
posted @ 2016-11-15 16:41 竹山一叶 编辑

摘要:String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简单来说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象,因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 ... 阅读全文
posted @ 2016-11-15 14:38 竹山一叶 编辑

摘要:如果出现:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)一般的原因是Mapper interface和XML文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上,需要比较细致的对比和检查。按以下步骤一一对比检查:1、检查XML文件所在的package名称是否和int... 阅读全文
posted @ 2016-11-14 16:58 竹山一叶 编辑

摘要:Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。总... 阅读全文
posted @ 2016-11-13 23:01 竹山一叶 编辑

摘要:我们以Sun HotSpot VM来进行分析,首先应该知道,如果我们没有指定任何GC策略的时候,JVM默认使用的GC策略。Java虚拟机是按照分代的方式来回收垃圾空间,我们应该知道,垃圾回收主要是针对堆(Heap)内存进行分代回收,将对内存可以分成新生代(Young Generation)、年老代(Tenured Generation)和永久代(Permanent Generation)三个部分。... 阅读全文
posted @ 2016-11-12 17:52 竹山一叶 编辑

摘要:架构简介 前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上。于是设计了如下的架构。此架构主要是由keepalived实现双机高可用,维护了一个外网VIP,一个内网VIP。正常情况时,外网VIP和内网VIP都绑定在server1服务器,web请求发送到server1的nginx,nginx对于静态资源请... 阅读全文
posted @ 2016-11-12 17:17 竹山一叶 编辑

摘要:一、前言 String.format 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.format("Hello %s", "John");,下面将笔记整理并记录下来。 二、重载方法 // 使用当前本地区域对象(Locale.getDefaul... 阅读全文
posted @ 2016-11-11 16:30 竹山一叶 编辑

摘要:上一篇讲述了使用JSch实现文件上传的功能,这一篇主要讲述一下JSch实现文件下载的功能。并介绍一些SFTP的辅助方法,如cd,ls等。 同样,JSch的文件下载也支持三种传输模式:OVERWRITE, RESUME和APPEND,请参考上篇随笔:JSch - Java实现的SFTP(文件上传详解篇 阅读全文
posted @ 2016-11-10 12:02 竹山一叶 编辑

摘要:JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。 本文只介绍如何使用JSch实现的SFTP功能。 SFTP是Secure File 阅读全文
posted @ 2016-11-10 11:58 竹山一叶 编辑

摘要:这篇文章主要是分析Tomcat中关于热部署和JSP更新替换的原理,在此之前先介绍class的热替换和class的卸载的原理。一 class的热替换ClassLoader中重要的方法 loadClass ClassLoader.loadClass(...) 是ClassLoader的入口点。当一个类没 阅读全文
posted @ 2016-11-09 23:00 竹山一叶 编辑

摘要:在Tomcat的server.xml或者Tomcat.xxx\conf\Catalina\localhost\project.xml文件中里Context标签内: 第一步:将reloadable设成false这是修改tomcat下的catalina目录下的工程文件如图(这样配置将会只对这个工程有效):第二步:debug方式启动Tomcat。如果你用的是eclipse Tomcat插件的话,将... 阅读全文
posted @ 2016-11-09 22:50 竹山一叶 编辑

摘要:MySQL中order by 排序遇到NULL值的问题 MySQL数据库,在order by排序的时候,如果存在NULL值,那么NULL是最小的,ASC正序排序的话,NULL值是在最前面的。 如果我们想让NULL排在后面,让非NULL的行排在前面该怎么做呢?MySQL数据库在设计的时候,如果字段允许NULL值,那么对该字段进行排序的时候需要注意那些值为NULL的行。我们知道NULL的意思表示什么都... 阅读全文
posted @ 2016-11-08 21:36 竹山一叶 编辑

摘要:MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。创建触发器在MySQL中,创建触发器语法如下:代码如下:CREATE TRIGGER trigger_nametrigger_timetrigger_event ON tbl_nameFOR EACH ROWtrigger_stmt 其中:... 阅读全文
posted @ 2016-11-08 21:08 竹山一叶 编辑

摘要:Cron 表达式包括以下 7 个字段:秒分小时月内日期月周内日期年(可选字段)特殊字符Cron 触发器利用一系列特殊字符,如下所示:反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。问号(?)字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入“?”,表示周内日期值无关紧... 阅读全文
posted @ 2016-11-07 14:17 竹山一叶 编辑

摘要:如下的一个普通JDBC示例:String user ="root";String password = "root";String url = "jdbc:mysql://localhost:3306";Connection conn = java.sql.DriverManager.getConnection(url , user, password);Statement stmt = conn... 阅读全文
posted @ 2016-11-07 11:59 竹山一叶 编辑

摘要:1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数。 2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis 阅读全文
posted @ 2016-11-06 21:53 竹山一叶 编辑

摘要:Settings→Plugins→Install JetBrains plugins...输入an后选择AngularJS,然后点击Install进行安装按照提示重启IDEA下图为插件管理窗口,点击下方的Install JetBrains plugins...按钮输入an,即可在列表中找到AngularJS,然后点击右侧的Install进行安装按照界面提示,重新启动IDEA即可来自为知笔记(Wiz... 阅读全文
posted @ 2016-11-06 17:43 竹山一叶 编辑

摘要:在Run/Debug Configuration中修改Tomcat的VM options,在里面输入以下内容:-server -XX:PermSize=128M -XX:MaxPermSize=256m修改位置如下图所示: PermSize和MaxPermSize 也不要设置得太大,会浪费物理内存。来自为知笔记(Wiz) 阅读全文
posted @ 2016-11-05 22:56 竹山一叶 编辑

摘要:先从菜单View→Tool Windows→Database打开数据库工具窗口,如下图所示:点击Database工具窗口左上角添加按钮“+”,选择Import from sources...,如下图所示:点击Import data sources...之后,会弹出自动扫描的窗口,稍等片刻即可完成下图为自动扫描的结果,分别为开发环境、生产环境、测试环境的配置可以点击左上角的“-”删除不需要的数据库配... 阅读全文
posted @ 2016-11-04 10:13 竹山一叶 编辑

摘要:在数据表内容上点击右键,弹出窗口中先选择Data Extractor SQL Inserts,二级菜单会列出导出数据的类型,这里选择SQL Inserts然后选择Dump Data菜单中的To File...或者To Clipboard(第一个是导出到文件,第二个是导出到剪贴板),如下图所示下图为选择To File...后弹出的窗口,点击OK按钮会弹出选择保存文件的位置,确认后即可保存至文件中仍可... 阅读全文
posted @ 2016-11-04 09:33 竹山一叶 编辑

摘要:先从菜单View→Tool Windows→Database打开数据库工具窗口,如下图所示:点击Database工具窗口左上角添加按钮“+”,选择数据库类型,这里以MySQL为例,如下图所示:填写数据库连接的主机名、数据库名、用户名和密码,如下图所示:点击Test Connection按钮进行测试数据库连接是否正常下图为连接正常的截图连接数据库成功后即可在右侧红框所示窗口内查看当前连接数据库的数据... 阅读全文
posted @ 2016-11-03 19:43 竹山一叶 编辑

摘要:IntelliJ IDEA可以自动优化导入包,但是有多个同名的类位于不同的包时,需要自己手动使用Alt + Enter进行导入。Settings→Editor→General→Auto Import选中Optimize imports on the fly和Add unambiguous imports on the flyOptimize imports on the fly:自动去掉一些没有用... 阅读全文
posted @ 2016-11-03 10:43 竹山一叶 编辑

摘要:Settings→Editor→File Types在下方的忽略文件和目录(Ignore files and folders)中添加自己需要过滤的内容下图为我自己添加过滤的内容,例如:*.iml;*.idea;*.gitignore;*.sh;*.classpath;*.project;*.settings;target;来自为知笔记(Wiz) 阅读全文
posted @ 2016-11-02 22:49 竹山一叶 编辑

摘要:【编者按】本文作者在和同事的一次讨论中发现,对 IntelliJ IDEA 内存采用不同的设置方案,会对 IDE 的速度和响应能力产生不同的影响。Don’t be a Scrooge and give your IDE some more memory不要做守财奴,给IDE多留点内存吧。昨天,大家就是否自定义IntelliJ IDEA的内存设置进行了讨论,有些人选择默认设置,有些人会对默认的设置进... 阅读全文
posted @ 2016-11-02 09:42 竹山一叶 编辑

摘要:IntelliJ IDEA默认的Output输出缓存区大小只有1024KB,超过大小限制的就会被清除,而且还会显示【too much output to process】,可通过如下配置界面进行修改Override console cycle buffer size(Settings→Editor→General→Console),单位为KB 如果需要禁用缓存区大小限制就需要修改配置文件idea.... 阅读全文
posted @ 2016-11-01 21:47 竹山一叶 编辑

点击右上角即可分享
微信分享提示