缓存
文章平均质量分 94
大道化简
先后担任技术总监就职于多家世界500强企业,技术委员会成员,在PaaS平台及业务应用建设方面深耕多年。
展开
-
Spring Cache原理与使用及ICOP平台中的缓存应用
一.Spring Cache概述Spring3.1中提供了基于注解的缓存技术,他本身并不是缓存的具体实现,而是一个缓存的抽象。通过在既有程序的方法上添加spring cache的注解,可以达到缓存方法返回结果的效果。 二.Spring Cache的特点1.通过使用少量注解,就可使既有代码支持缓存2.支持开箱即用Out-of-the-box,即不用安装和部署第三方组件,就可以使用原创 2017-02-09 20:55:11 · 2520 阅读 · 0 评论 -
Redis单线程架构
Redis单线程架构1 单线程模型Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返回结果三个过程。其中执行命令阶段,由于Redis是单线程来处理命令的,所有每一条到达服务端的命令不会立刻执行,所有的命令都会进入一个队列中,然后逐个被执行。并且多个客户端发送的命令的执行顺序是不确定的。但是可以确定的是不会有两条命令被同时执行,不会产生并发问题,这就是Redis的单线程基本...原创 2017-06-23 23:19:44 · 15911 阅读 · 5 评论 -
Redis API-全局命令
Redis API-全局命令一. 查看所有键Keys * keys命令会遍历所有键,时间复杂度是O(n),当Redis保存大量键时,环境上禁止使用。二. 键总数dbsizedbsize命令不会遍历所有键,而是直接获取Redis内置的键总数变量,所以dbsize命令的时间复杂度是O(1).三. 检查指定的键是否存在exists key检查指定的键是否存在,如存在返...原创 2017-07-04 19:06:12 · 947 阅读 · 0 评论 -
Redis-数据库管理
Redis-数据库管理一.数据库管理Redis支持在一个实例下创建多个数据库,数据库中的键彼此是隔离的,默认配置是16个库。Redis-cli连接redis-server时默认连接的是0号数据库。由于Redis是单线程的,同一个实例的多数据库仍然使用同一个CPU,彼此之间仍然会受影响。任何一个库的慢查询都会影响其他库,对开发和运维的调试带来很大的不遍历。多读数据库的需求可以转换为部署多...............原创 2017-07-04 20:17:51 · 1115 阅读 · 0 评论 -
Redis-Java客户端Jedis
Redis-Java客户端Jedis 一.Jedis的下载方式 Maven管理下,在pom文件中引入如下依赖即可:dependency> groupId>redis.clientsgroupId> artifactId>jedisartifactId> 2.9 depen原创 2017-07-13 19:37:00 · 1624 阅读 · 0 评论 -
Redis异常分析-输入缓冲区过大
Redis异常分析-输入缓冲区过大一.输入缓冲区概念Redis为每个客户端分配了输入缓冲去,它的作用是将客户端发送的命令临时保存,同时Redis会到输入缓冲区拉取命令并执行,输入缓冲区为客户端发送命令道Redis执行命令提供了缓冲功能。qbuf代表了输入缓冲区的大小,qbuf-free代表输入缓冲区的剩余容量。输入缓冲区会根据输入内容的大小动态调整,每个客户端的输入缓冲区大小不能超过1...原创 2017-07-13 20:55:41 · 3365 阅读 · 0 评论 -
Redis异常分析-输出缓冲区过大
Redis异常分析-输出缓冲区过大一.输出缓冲区概念Redis为每个客户端分配了输出缓冲区,它的作用是保存命令的执行结果返回给客户端,为Redis和客户端交互返回结果提供缓冲。与输入缓冲区的区别是:输入缓冲区不能指定容量,而输出缓冲区可以通过参数client-output-buffer-limit来指定容量。二.输出缓冲区过大的危害输出缓冲区不受maxmemory的控制,假设一个R...原创 2017-07-14 11:28:26 · 4434 阅读 · 2 评论 -
Redis-客户端管理
Redis-客户端管理一.客户端API1.1 查看所有客户端信息 client listClient list命令可以列出所有与Redis服务端相连的客户端信息。例如:10.3.34.101:6378> client listid=10521 addr=10.3.34.101:39696 fd=5 name=age=4017 idle=41 flags=N db=0 sub...原创 2017-07-15 18:57:07 · 4519 阅读 · 1 评论 -
Redis-Shell
Redis Shell一. redis-cli1.1 查看redis-cli命令帮助 redis-cli help 查看redis-cli命令帮助[devuser@iz2ze2ehfvske0t6zflgupz ~]$redis-cli helpredis-cli 3.2.4To get help about Redis commands type:"help原创 2017-07-15 19:05:39 · 6106 阅读 · 1 评论 -
Redis-AOF持久化
Redis持久化-AOF一. AOF持久化原理AOF(append only file)持久化是以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的。AOF主要作用是解决了数据持久化的实时性,目前已经是redis持久化的主流方式。二. 开启AOF持久化(1)开启AOF持久化,需要设置appendonly参数的值为yes,默认不开启。(2)aof............原创 2017-07-20 00:28:19 · 2345 阅读 · 0 评论 -
Redis-pipeline
Redis-Pipeline一. 概念Redis客户端和服务端往往部署在不同的机器上,客户端命令的执行分为发送命令,命令排队,执行命令,返回结果四个步骤。其中发送命令和返回结果的时间称为Round Trip Time(RTT 往返时间)。当客户端有大量的命令时,会有大量的往返时间,如果有N条命令要执行,就会有N个往返时间。因此业界有种说法是Redis的性能瓶颈往往是网络。Pipel...原创 2017-07-10 14:27:52 · 1103 阅读 · 0 评论 -
Redis-RDB持久化
Redis-RDB持久化一. RDB持久化的原理RDB持久化是把当前进程数据生成快照保存到硬盘中的过程。二. RDB持久化的触发机制2.1 手动触发RDB手动触发RDB的方式有两种,分别是save命令和bgsave命令2.1.1 save命令触发RDB Save命令将阻塞当前Redis服务器,直到RDB过程完成为止,对于内存比较大的实例会造成长时间阻塞,线上环境......原创 2017-07-18 19:59:34 · 2022 阅读 · 0 评论 -
Redis-客户端通讯协议
Redis-客户端通讯协议一.概述1.客户端与服务端的通讯协议是建立在TCP协议之上构建的2.Redis指定了RESP(Redis SerializationProtocol,Redis序列化协议)实现客户端与服务端的正常交互,这种协议简单高效,即容易被机器解析,又容易被人类识别。二.发送命令格式RESP规定一条命令的格式如下:其中CRLF代表\r\n* CRLF.........原创 2017-07-13 10:07:38 · 3311 阅读 · 0 评论 -
Redis系列-复制
Redis系列-复制一.什么是复制?Redis复制是不同Redis实例之间的数据同步,其中我们将被复制的Redis实例称之为主服务器,复制数据的Redis实例称之为从服务器。复制的方式通常为主服务器将数据发送到从服务器,从服务器接收到数据,将数据保存在当前实例中,最终的目标是保证主服务器与从服务器间的数据一致及同步。二.复制的实现1.同步1.1 SYNC从服务器通过向...原创 2017-06-02 16:57:48 · 1257 阅读 · 0 评论 -
Redis的应用场景
一.Redis的应用场景1.1 Redis可以做什么?(1)缓存(2)计数器应用(3)消息队列系统(4)排行榜系统(5)社交网络1.2 Redis不适合做什么?(1)大规模数据内存相对其它存储介质来讲成本还是较高,存储大规模数据来说还是较贵,如果每天有几亿的用户行为数据而使用Redis来存储,基本是个无底洞,经济成本相当高...原创 2017-06-22 19:43:24 · 410 阅读 · 0 评论 -
Redis-事务控制
Redis-事务控制一.事务1.1 事务的概念事务表示一组动作,要么全部执行,要么全部不执行。Redis提供了简单的事务控制。将一组需要一起执行的命令放到multi和exec两个命令之间。multi代表事务的开始,exec代表事务的结束,它们之间的命令是原子顺序执行的。1.2 redis事务相关命令1.2.1 事务的创建(multi)、执行(exec)与回滚(disc...原创 2017-07-10 20:36:17 · 1274 阅读 · 0 评论 -
在Redis中使用Lua
在Redis中使用Lua一.Lua是什么?Lua是一门脚本语言,它是由C语言实现的。其设计目标是做为嵌入式程序移植到其他应用程序。Redis将Lua做为脚本语言可以帮助开发者定制自己的Redis命令。二. 数据类型Lua支持strings(字符串),numbers(数值),tables(表格),booleans(布尔)三. 在Redis中使用Lua3.1 eval3.2...原创 2017-07-10 21:46:57 · 3540 阅读 · 0 评论 -
Redis数据结构和内部编码--字符串
数据结构和内部编码--字符串一.概念 字符串类型是redis的基础数据类型。首先,键都是字符串类型。字符串类型的值可以是字符串(简单字符串或者JSON/XML)、数值(整数和浮点数),二进制(图片,音频和视频),但是最大不能超过512MB。二. 命令2.1 设置值(1)set key value [ex seconds] [pxmillisecons] [nx|......原创 2017-06-30 01:36:19 · 2995 阅读 · 0 评论 -
Redis数据结构和内部编码--哈希(hash)
一.概念在Redis中,也提供了和其他语言一样键值对结构的hash类型,Redis的hash类型的键值本身又是一个键值对结构.如:keyvalueuser:1keyvaluecode01nameshluser:2key原创 2017-07-01 12:43:49 · 2617 阅读 · 0 评论 -
Redis-Bitmaps应用
Redis-Bitmaps应用一.数据结构模型Redis提供的Bitmaps这个“数据结构”可以实现对位的操作。Bitmaps本身不是一种数据结构,实际上就是字符串,但是它可以对字符串的位进行操作。可以把Bitmaps想象成一个以位为单位数组,数组中的每个单元只能存0或者1,数组的下标在bitmaps中叫做偏移量。单个bitmaps的最大长度是512MB,即2^32个比特位。二....原创 2017-07-11 15:49:24 · 4720 阅读 · 1 评论 -
Redis-HyperLogLog
HyperLogLog一.什么是HyperLogLogHyperLogLog并不是一种新的数据结构(实际类型为字符串类型),而是一种基数算法,通过HyperLogLog可以利用极小的内存空间完成独立总数的统计,数据集可以是ip、Email、ID等。二. 命令2.1 添加pfadd key element[element…]Pfadd命令用于向HyperLogLog添加元素,如果...原创 2017-07-11 17:01:52 · 1113 阅读 · 0 评论 -
Redis-发布订阅
Redis-发布订阅一.Redis的发布订阅机制Redis提供了基于“发布订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道(channel)发布消息,订阅该频道的每个客户都可以收到该消息二.命令2.1 发布消息命令; publish channel messagepublishchannel1 message22.2...原创 2017-07-11 20:55:24 · 703 阅读 · 0 评论 -
Redis的配置、启动、操作和关闭
Redis的配置、启动、操作和关闭一.启动Redis 1.默认配置启动 执行redis-server命令,按照默认的redis.conf配置文件中的配置启动Redis,如下: 因为默认配置无法自定义配置。所以该方式不会再生产环境中使用 2.运行配置启动 在命令redis-server后加上要修改的配置名和值(可以设置多对),没有设置的.........原创 2017-06-23 09:16:39 · 103023 阅读 · 0 评论 -
Redis数据结构和内部编码--集合(Set)
Redis数据结构和内部编码--集合(Set)一.概念集合也是用来存储多个字符串元素,但和列表示有区别的,集合中的元素是无序且无重复的,不能用下标来获取元素。在Redis中,一个集合最多可以存储2^32个元素,除了支持对集合的增删改查外,还支持对多个集合取交集、并集、差集。二. 命令2.1 添加元素命令:sadd key value[value2…],返回添加成功的元素个...原创 2017-07-03 00:20:11 · 1691 阅读 · 0 评论 -
Redis-GEO
Redis-GEO一. Redis的GEO特性Redis3.2版本提供了GEO功能,支持存储地理位置信息用来实现诸如摇一摇,附近位置这类依赖于地理位置信息的功能。二. 命令2.1 增加地理位置信息命令:geoadd key longitude latitude member[longitude latitude member…]例如:geoadd cities:locati............原创 2017-07-12 15:44:36 · 4289 阅读 · 0 评论 -
Redis高可用方案-哨兵与集群
祝大家每日进步,有技术问题多多交流,同时欢迎大家关注我的头条号:IT人孙会良Redis高可用方案一.名词解释二.主从复制 Redis主从复制模式可以将主节点的数据同步给从节点,从而保障当主节点不可达的情况下,从节点可以作为后备顶上来,并且可以保障数据尽量不丢失(主从复制可以保障最终一致性)。第二,从节点可以扩展主节点的读能力,一旦主节点不能支持大............原创 2017-10-27 09:38:29 · 10332 阅读 · 1 评论