redis的使用规范(内部公开)

redis的使用规范(内部公开)
redis的使用规范(内部公开)

翼支付Redis使用规范(内部公

开)

说明书

编写:魏巍

评审:夏琨

批准:夏琨

日期:2015-03-27

文档信息及修改历史

目录

Redis使用规范(内部公开) (1)

1引言 (4)

1.1编写目的 (4)

1.2编写原则 (4)

1.3读者对象 (4)

1.4文档贡献 (4)

1.5术语定义 (4)

1.5.1名词释义 (4)

2典型使用 (5)

2.1Session集群解决方案 (5)

2.1.1集群配置(不同场景的机器配置会不一样) (5)

2.1.2引入Git项目 (5)

2.1.3web.xml说明 (6)

2.1.4配置文件说明 (8)

2.2单表数据缓存方案........................................................................... 错误!未定义书签。

2.3大量数据查询解决方案................................................................... 错误!未定义书签。3上线规则 (9)

3.1命名 (9)

3.2消息大小限制 (9)

3.3消息量的控制 (9)

3.4消息量预估 (9)

3.5扩容 (10)

1引言

1.1编写目的

本文档制定使用Redis规范和使用要求,制定规范命名和流程化的使用规则,从而降低后期维护、

2典型使用

2.1Session集群解决方案

用户登陆时的session可保存到redis集群中,应用程序重启,session依然存在,无需再次登陆。

2.1.3web.xml说明

Web.xml

xmlns="https://www.360docs.net/doc/9b14507802.html,/xml/ns/javaee"

xsi:schemaLocation="https://www.360docs.net/doc/9b14507802.html,/xml/ns/javaee

https://www.360docs.net/doc/9b14507802.html,/xml/ns/javaee/web-app_2_5.xsd"

id="WebApp_ID" version="2.5">

spring

org.springframework.web.servlet.DispatcherServlet

1

spring

/

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

CharacterEncodingFilter

/*

spring

该“spring”对应的是上面springMvc中的

spring

/

所以,在引入的时候,请注意对应好“spring”。

-->

AFSessionFilter

com.aixforce.session.AFSessionFilter

sessionCookieName

bpsid

cookieDomain

localhost

AFSessionFilter

spring

说明:

增加redis session过滤器,本测试用例使用的当下最流行的springMvc为基础框架,

正常流程是当一个请求进来,被上面的springMvc的'/' 给拦截,然后进行DispatcherServlet 处理。

本测试用例增加了一层过滤,在filter-mapping中的

AFSessionFilter

spring

该“spring”对应的是上面springMvc中的

spring

/

所以,在引入的时候,请注意对应好“spring”。cookieDomain:发布项目的域名,否则将不会保存session

3上线规则

3.1命名

每一个新加的生产者在使用集群前都必需向中间件人员预估消息量,由维护人员来进行性能评估,从而保证集群在加入新的成员后的稳定性。

3.5扩容

如若交易在可预估的情况下(如活动),有爆发性增长时,需要向中间件组沟通了解当前集群是否可承受爆发性增长的业务。

Redis集群研究

Redis Sentinel数据库M-S配置(Redis的分片与复制集技术) 1.Redis Sentinel介绍 Redis Sentinel是Redis官方提供的集群管理工具,主要有三大功能: 监控,能持续监控Redis的主从实例是否正常工作; 通知,当被监控的Redis实例出问题时,能通过API通知系统管理员或其他程序;自动故障恢复,如果主实例无法正常工作,Sentinel将启动故障恢复机制把一个从实例提升为主实例,其他的从实例将会被重新配置到新的主实例,且应用程序会得到一个更换新地址的通知。 Redis Sentinel是一个分布式系统,可以部署多个Sentinel实例来监控同一组Redis实例,它们通过Gossip协议来确定一个主实例宕机,通过 Agreement协议来执行故障恢复和配置变更,一般在生产环境中部署多个实例来提高系统可用性,只要有一个Sentinel实例运行正常,就能保证被监控的Redis实例运行正常(类似Zookeeper,通过多个Zookeeper来提高系统可用性); 2.Redis HA方案 HA的关键在于避免单点故障及故障恢复,在Redis Cluster未发布之前,Redis 一般以主/从方式部署(这里讨论的应用从实例主要用于备份,主实例提供读写,有不少应用是读写分离的,读写操作需要取不同的Redis实例,该方案也可用于此种应用,原理都是相通的,区别在于数据操作层如何封装),该方式要实现HA主要有如下几种方案: 1).keepalived:通过keepalived的虚拟IP,提供主从的统一访问,在主出现问题时,通过keepalived运行脚本将从提升为主,待主恢复后先同步后自动变为主,该方案的好处是主从切换后,应用程序不需要知道(因为访问的虚拟IP 不变),坏处是引入keepalived增加部署复杂性; 2).zookeeper:通过zookeeper来监控主从实例,维护最新有效的IP,应用通过zookeeper取得IP,对Redis进行访问; 3).sentinel:通过Sentinel监控主从实例,自动进行故障恢复,该方案有个缺陷:因为主从实例地址(IP&PORT)是不同的,当故障发生进行主从切换后,应用程序无法知道新地址,故在Jedis2.2.2中新增了对Sentinel的支持,应用通过 redis.clients.jedis.JedisSentinelPool.getResource()取得的Jedis 实例会及时更新到新的主实例地址。 笔者所在的公司先使用了方案1一段时间后,发现keepalived在有些情况下会导致数据丢失,keepalived通过shell脚本进行主从切换,配置复杂,而且keepalived成为新的单点,后来选用了方案3,使用Redis官方解决方案;(方

Redis在大数据中的使用技巧

Redis在大数据中的使用技巧 今天将会跟大家讨论一些Redis在大数据中的使用,包括一些Redis的使用技巧和其他的一些内容。 一、Redis封装架构讲解 实际上NewLife.Redis是一个完整的Redis协议功能的实现,但是Redis的核心功能并没有在这里面,而是在NewLife.Core里面。 这里可以打开看一下,NewLife.Core里面有一个NewLife.Caching的命名空间,里面有一个Redis类,里面实现了Redis的基本功能;另一个类是RedisClient是Redis的客户端。 Redis的核心功能就是有这两个类实现,RedisClient代表着Redis客户端对服务器的一个连接。Redis真正使用的时候有一个Redis连接池,里面存放着很多个RedisClient对象。 所以我们Redis的封装有两层,一层是NewLife.Core里面的Redis以及RedisClient;另一层就是NewLife.Redis。这里面的FullRedis是对Redis的实现了Redis的所有的高级功能。 这里你也可以认为NewLife.Redis是Redis的一个扩展。 二、Test实例讲解Redis的基本使用 1、实例 这里https://www.360docs.net/doc/9b14507802.html,eConsole();是向控制台输出日志,方便调试使用查看结果。 接下来看第一个例子Test1,具体的我都在代码中进行了注释 Set的时候,如果是字符串或者字符数据的话,Redis会直接保存起来(字符串内部机制也是保存二进制),如果是其他类型,会默认进行json序列化然后再保存起来。

Get的时候,如果是字符串或者字符数据会直接获取,如果是其他类型会进行json反序列化。 Set第三个参数过期时间单位是秒。 vs调试小技巧,按F5或者直接工具栏“启动”会编译整个解决方案会很慢(VS默认),可以选中项目然后右键菜单选择调试->启动新实例,会只编译将会用到的项目,这样对调试来说会快很多。 大家运行调试后可以看到控制台输出的内容:向右的箭头=》是ic.Log=XTrace.Log 输出的日志。 字典的使用:对象的话,需要把json全部取出来,然后转换成对象,而字典的话,就可以直接取某个字段。 队列是List结构实现的,上游数据太多,下游处理不过来的时候,就可以使用这个队列。上游的数据发到队列,然后下游慢慢的消费。另一个应用,跨语言的协同工作,比方说其他语言实现的程序往队列里面塞数据,然后另一种语言来进行消费处理。这种方式类似MQ的概念,虽然有点low,但是也很好用。 集合,用的比较多的是用在一个需要精确判断的去重功能。像我们每天有三千万订单,这三千万订单可以有重复。这时候我想统计下一共有订单,这时候直接数据库group by是不大可能的,因为数据库中分了十几张表,这里分享个实战经验: 比方说揽收,商家发货了,网点要把件收回来,但是收回来之前网点不知道自己有多少货,这时候我们做了一个功能,也就是订单会发送到我们公司来。我们会建一个time_site 的key的集合,而且集合本身有去重的功能,而且我们可以很方便的通过set.Count功能来统计数量,当件被揽收以后,我们后台把这个件从集合中Remove掉。然后这个Set中

Redis的5个常见使用场景

Redis的5个常见使用场景概括 大家平时在使用Redis的时候有没有总结过Redis常用于哪些场景呢。下面科多老师带着大家一起来总结一下,希望能够帮助到各位同学。 1、会话缓存(Session Cache) 最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis 缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部丢失,大部分人都会不高兴的,现在,他们还会这样吗? 幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用Redis 来缓存会话的文档。甚至广为人知的商业平台Magento也提供Redis的插件。 2、全页缓存(FPC) 除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性 问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。 再次以Magento为例,Magento提供一个插件来使用Redis作为全页缓存后端。 此外,对WordPress的用户来说,Pantheon有一个非常好的插件wp-redis,这个插件能帮助你以最快速度加载你曾浏览过的页面。 3、队列 Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis 能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。 如果你快速的在Google中搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的就是利用Redis创建非常好的后端工具,以满足各种队列需求。例如,Celery有一个后台就是使用Redis作为broker,你可以从这 里去查看。 4、排行榜/计数器 Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set) 和有序集合(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户–我们称之为“user_scores”,我们只需要像下面一样执行即可: 当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执行: ZRANGE user_scores 0 10 WITHSCORES

B. VisiSet 入门手册

VisiSet中文操作手册_V1.0 Matrix 2000 目录 一、调试工具及界面介绍............................................................................................................. - 2 - 1、打开调试软件V ISI S ET (2) 2、连接V ISI S ET与读码器 (2) 3、调试读码器 (3) 四、参数调试 ............................................................................................................................... - 6 -附录1. 读码器固件升级方法

一、调试工具及界面介绍 1、打开调试软件VisiSet 正确安装读码器后,打开VisiSet软件。有两种方法: <1> 点击桌面上的快捷方式,如下图: <2> 从开始菜单启动,点击开始->程序->Datalogic->VisiSet->VisiSet.exe。 2、连接VisiSet与读码器 打开VisiSet后,程序窗口如下图所示: 点击工具栏中的Options按钮,会出现下面的窗口: 此窗口用来设置读码器与电脑通讯所用的串口的设置。例如,选择使用哪一个串口,波特率是多少,是否有奇偶校验等。把这些设置与电脑串口的设置改为一样。然后点击Save

关闭此窗口。出厂时的设定为:115200-8-N-1 如下图,点击Connect : 大约2秒钟,VisiSet 与读码器连接成功,连上后的状态如下图: 左边的一列按钮为调试工具,用于调试读码器;右边为数据显示窗口,可以显示读到的条码的内容。 3、 调试读码器 VisiSet 与读码器成功连接后,我们就可以对读码器进行调试。 测试工具 数据显示窗口

Redis数据库安装使用说明

Redis数据库安装使用说明 Redis数据库安装使用说明 Windows 安装说明 下载 文件 配置 启动 CentOS 安装说明 下载 安装 配置 启动 关闭 redis-py 检测 安装 说明 官方网站 Windows 安装说明 Windows下启动请使用Administrator账户 下载

请点击这里选择需要下载的版本 Windows版本只是为了开发使用,正式环境请选择在Linux下安装使用文件 程序说明 redis-benchmark.exe Redis性能测试工具 redis-check-aof.exe数据修复 redis-check-dump.exe检查导出工具 redis-cli.exe Redis客户端 redis-server.exe Redis服务器 redis.windows.conf配置文件 配置 配置文件为 redis.windows.conf 主要修改以下几个参数: 内网运行,建议不设置认证密码 port6379#端口,默认为6379 logfile"redis.log"#日志文件

dbfilename dump.rdb #数据库文件 maxheap1024000000#修改为该值即可 dir ./ #路径(当前目录下) 启动 进入控制台,并跳转到reids-server.exe目录下,输入以下命令即可: redis-server redis.windows.conf 设置快捷启动 在redis程序文件夹下创建StartRedisDB.bat文件,并写入如下内容 redis-server redis.windows.conf pause 保存即可,下次可以直接点击运行Redis服务端 CentOS 安装说明 如果安装使用过,请使用你自己的方法;如果没有安装使用过,请根据我的步骤安装

redis twemproxy集群安装手册

一、概述 1、Redis集群安装有两种方式,第一种为编译源码安装,第二种为二进制安 装,具体选择哪一种方式根据实际情况决定。 2、本文档所使用版本如下: redis:redis-3.0.0-rc5 Twemproxy:nutcracker-0.4.0 autoconfig:2.69 3、常用Linux命令不清楚可以查看相关网站 4、本文档所述redis集群架构如下: 5、本文档使用120和121搭建redis集群,每台机器各启动两个redis实例 和一个twemproxy实例。Redis端口分别为6379 6380 6、采用源码编译方式安装需服务器具有访问外网权限,二进制安装不需求。 7、所有安装包均已上传至文件服务器 二、源码编译方式安装 1、安装automake 执行:yum install automake,出现如下输入Y完成安装:

2、libtool安装 执行:yum install libtool 出现如下输入yes完成安装 3、autoconfig安装 ①上传autoconf-2.69.tar.gz至/usr/local/src目录下 ②执行tar -xzvf autoconf-2.69.tar.gz ③cd autoconf-2.69 ④执行./configure ⑤执行make ⑥执行make install 至此,autoconfig安装完毕 4、redis安装 ①上传redis-3.0.0-rc5.zip至/usr/local/src目录下 ②执行unzip redis-3.0.0-rc5.zip ③执行cd redis-3.0.0-rc5 ④执行make&&make install ⑤执行mkdir /usr/local/redis ⑥执行cp src/redis-server src/redis-cli /usr/local/redis ⑦执行cd /usr/local/redis ⑧执行chmod 777 redis-server redis-cli ⑨执行./redis-server --port 6379 --save "" & 出现如下 ⑩执行./redis-cli -p 6379出现如下

redis系列三-springboot如何使用redis做缓存及缓存注解的用法总结

redis系列三-springboot如何使用redis做缓存及缓存注解的 用法总结 1. 概述 本文介绍spring boot 如何使用Redis做缓存,如何对redis 缓存进行定制化配置(如key的有效期)以及spring boot 如何初始化redis做缓存。使用具体的代码介绍了@Cacheable,@CacheEvict,@CachePut,@CacheConfig等注解及其属性的用法。 2. spring boot集成redis 2.1. application.properties 配置application.properties,包含如下信息: 指定缓存的类型 配置redis的服务器信息 请不要配置spring.cache.cache-names值,原因后面再说 ## 缓存 # spring.cache.cache-names=book1,book2 spring.cache.type=REDIS # REDIS (RedisProperties)

spring.redis.database=0 spring.redis.host=192.168.188.7 spring.redis.password= spring.redis.port=6379 spring.redis.pool.max-idle=8 spring.redis.pool.min-idle=0 spring.redis.pool.max-active=100 spring.redis.pool.max-wait=-1123456789101112131234567891 0111213 2.2. 配置启动类 @EnableCaching: 启动缓存 重新配置RedisCacheManager,使用新的配置的值 @SpringBootApplication @EnableCaching // 启动缓存 public class CacheApplication { private static final Logger log = LoggerFactory.getLogger(CacheApplication.class); public static void main(String[] args) { https://www.360docs.net/doc/9b14507802.html,("Start CacheApplication.. ");

我终于深入参与了一个分布式系统了,好多想法不一样了!

我终于深入参与了一个分布式系统了,好多想法不一样了! 原文出处:Turbo Zhang 的博客前言 过去两个月深入的参与了一个分布式系统的开发,记得之前有人说过“想成为架构师之前,都是从微观架构开始的”。尽 管我从没想过将来的某一天要成为一个架构师,或者领域专家,我只是想萌萌哒的编码,写着自己喜欢的Code,和一 群志同道合的朋友做出大家喜欢的商品和产品。但是工作久了慢慢的搭架子的事情还是会来到你的面前,因为时间总会把一部分人慢慢推向海边,使得他们成为最早见到阳光的人。不扯淡了,为什么要说阳光呢,还是因为过去的两(三)个月可能过的太充实也太痛苦了,完成之后,曙光来临的时候整个人是会发光的哦。“深度”参与是因为我终于有机会在搭 架子的过程中有了话语权和选择权,同时也会承担70%以上的编码工作。 之前我的自我认知是我可能在软件方面的积累还可以,比如设计模式,架构分层,程序解耦,API入手等方面,但是总觉得我在硬件网络方面积累的太少,太薄了。 比如: 不同操纵系统之间的特点;

网络端口管理与分发; 哪些网络协议可以帮助我们更好的完成工作,监控虚拟机的时候是在虚机上加代理好还是用协议去控制; 硬件是否支持分布式,在扩展过程中对于.net C#的兼容怎么样; 什么时候使用多线程,在把线程交给程序调度的时候我们怎么控制和捕捉线程的异常; 日志系统对于整个分散的系统是多么的重要; 何时使用关系数据库,什么时候使用Nosql; 消息队列用擅长的MSMQ还是RabbitMQ. 怎样有效的和其他部门的同事沟通; 用什么样的方式去有效调度不同语言开发的系统; 测试用例对于大系统从零散到完整是多么的重要; 系统标准,代码原则对于后期的维护余扩展是多么的重要;等; 项目简介 首先项目详细内容不便多说,简答的说,就是为国内某大型厂商建立一套协调其自身搭建的私有云以及其购买的公有 云的一套系统。说牛X一点就是:一套混合云系统。 使用Restful

redis在JAVA中使用

Redis 一、Redis介绍 什么是Redis? redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash (哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 它有什么特点? (1)Redis数据库完全在内存中,使用磁盘仅用于持久性。 (2)相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。 (3)Redis可以将数据复制到任意数量的从服务器。 Redis 优势? (1)异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。(2)支持丰富的数据类型:Redis支持最大多数开发人员已经知道像列表,集合,有序集合,散列数据类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些问题是可以处理通过它的数据类型更好。 (3)操作都是原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。

(4)多功能实用工具:Redis是一个多实用的工具,可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅),任何短暂的数据,应用程序,如Web应用程序会话,网页命中计数等。 Redis 缺点? (1)单线程 (2)耗内存 二、使用实例 spring把专门的数据操作独立封装在spring-data系列中,spring-data-redis自然是针对Redis的独立封装了。 主要是将jedis、jredis、rjc以及srp等Redis Client进行了封装,同时支持事务。 1、引入相关jar包(连接池不做考虑) 1. 2. 3.org.springframework.data 4.spring-data-redis 5.1. 6.1.RELEASE 6. 7. 8.redis.clients 9.jedis 10.2.7.3 11. 12. 2、配置bean

Spring-data-redis使用手册

Spring-data-redis使用手册

文档信息(Document Info) 标题(Title) Spring-data-redis使用手册 文档编号(No) 2012-02-14 作者(Author) 黄承开 最后发布时间(Last Update) 2012-08-10 概述(Summarize) 掌握spring-data-redis的使用方法,一些最佳实践

修订信息(Revise Info) 修订日期(Date)修订人(Reviser) 修订内容(Revises) 2012-05-21 梁国锋 2.2 redis下载地址(Linux版、Windows版) 3.4.6常用api的方法 5.1mercury项目实战 2012-06-25 黄承开新增maven依赖配置方法,整理了章节2012-06-26 黄承开新增章节 2012-08-10 张瑜新增Tinybee实战配置,增加KEY序列化配置

附件信息(Attachment Info)

目录 文档信息(Document Info) (2) 修订信息(Revise Info) (3) 附件信息(Attachment Info) (4) 1.概述 (6) 1.1.目的 (6) 1.2.范围 (6) 2.准备 (6) 2.1.环境配置 (6) 2.2.下载地址 (7) 3.Spring-data-redis (7) 3.1.背景 (7) 3.1.1.高级API (7) 3.1.2.低级API (7) 3.2.Maven配置 (7) 3.3.JedisConnectionFactory (8) 3.4.RedisTemplate和StringRedisTemplate (8) 3.5.API概览 (8) 3.5.1.Java集合和Redis集合 (8) 3.5.2.Operations (9) 3.5.3.ValueOperations和BoundValueOperations (9) 3.5.4.ListOperations和BoundListOperations (9) 3.5.5.SetOperations和BoundSetOperations (10) 3.5.6.ZSetOperations和BoundZSetOperations (11) 3.5.7.HashOperations和BoundHashOperations (11) 3.5.8.其他 (12) 3.6.Callback (12) 3.7.Topic和Messaging/PubSub (12) 3.8.Cache (12) 4.NoSQL数据库设计 (12) 4.1.一般经验 (12) 4.1.1.不持久化业务实体 (12) 4.1.2.Key的设计 (12) 4.2.官方例子中的设计 (13) 4.3.NoSQL 数据建模技术 (13) 5.最佳实践 (13) 5.1.项目案例1(Mercury项目) (13) 5.1.1.配置 (13) 5.1.2.总结 (14) 5.2.项目案例2(Tinybee项目) (14) 5.2.1.配置(更新) (14)

Redis 使用的常见误区(案例分析)

Redis 使用的常见误区(案例分析) 在一个炎热的夏天,引爆了埋藏已久的大炸弹。本文作者从实际案例出发讲解Redis 使用的误区。 案例一:一个产品线开发人员搭建起了一套庞大的价格存储系统,底层是关系型数据库,只用来处理一些事务性的操作和存放一些基础数据。 在关系型数据库的上面还有一套MongoDB,因为MongoDB 的文档型数据结构,让他们用起来很顺手,同时也可以支撑一定量的并发。 在大部分的情况下,一次大数据量的计算后结果可以重用但会出现细节数据的频繁更新,所以他们又在MongoDB 上搭建了一层Redis 的缓存。 这样就形成了数据库MongoDBRedis三级的方式,方案本身先不评价不是本文重点,我们来看Redis 这层的情况。 由于数据量巨大,所以需要200GB 的Redis,并且在真实的调用过程中,Redis 是请求量最大的点。 当然如果Redis 有故障时,也会有备用方案,从后面的MongoDB 和数据库中重新加载数据到Redis,就是这么一套简单的方案上线了。 当这个系统刚开始运行的时候,一切都还安好,只是运维同学有点傻眼了,200GB 的Redis 单服务器去做,它的故障可能性太大了。 所以大家建议将它分片,没分不知道,一分吓一跳,各种类型用的太多了,特别是里面还有一些类似消息队列使用的场景。 由于开发同学对Redis 使用的注意点关注不够,一味的滥用,一锤了事,所以让事情变的困难了。 有些侥幸不死的想法是会传染,这时的每个人都心存侥幸,懒惰心理,都想着:这个应该没事,以后再说吧,先做个主从,挂了就起从,这种侥幸也是对Redis 的虚伪的信心,无知者无畏。 可惜事情往往就是怕什么来什么,在大家快乐的放肆使用时,系统中重要的节点

redis的使用规范(内部公开)

翼支付Redis使用规范(内部公 开) 说明书 编写:魏巍 评审:夏琨 批准:夏琨 日期:2015-03-27

文档信息及修改历史

目录 Redis使用规范(内部公开) (1) 1引言 (4) 1.1编写目的 (4) 1.2编写原则 (4) 1.3读者对象 (4) 1.4文档贡献 (4) 1.5术语定义 (4) 1.5.1名词释义 (4) 2典型使用 (5) 2.1Session集群解决方案 (5) 2.1.1集群配置(不同场景的机器配置会不一样) (5) 2.1.2引入Git项目 (5) 2.1.3web.xml说明 (6) 2.1.4配置文件说明 (8) 2.2单表数据缓存方案........................................................................... 错误!未定义书签。 2.3大量数据查询解决方案................................................................... 错误!未定义书签。3上线规则 (9) 3.1命名 (9) 3.2消息大小限制 (9) 3.3消息量的控制 (9) 3.4消息量预估 (9) 3.5扩容 (10)

1引言 1.1编写目的 本文档制定使用Redis规范和使用要求,制定规范命名和流程化的使用规则,从而降低后期维护、

2典型使用 2.1Session集群解决方案 用户登陆时的session可保存到redis集群中,应用程序重启,session依然存在,无需再次登陆。

软件开发应知应会-84分

研究数据结构就是研究() A.数据的逻辑结构 B.数据的存储结构 C.数据的逻辑结构和存储结构 D.数据的逻辑结构、存储结构及其运算结构 栈和队列的共同特点是()。 A.都是先进先出 B.都是先进后出 C.只允许在端点处插入和删除 D.没有共同点 关键路径是事件结点网络中()。 A.从源点到汇点的最长路径 B.从源点到汇点的最短路径 C.最长的回路 D.最短的回路 以下是线性表的数据结构是()。 A.数组 B.单链表 C.双链表 D.循环链表 以下()是常用的哈希函数构造方法。 A.直接寻址法 B.除留余数法 C.随机数法 D.平方取中法 不属于Swift属性的是() A.存储属性 B.计算属性 C.类型属性 D.以上都不是 CSS3的优点是() A.减少开发成本

B.减少维护成本 C.提高页面性能 D.以上都是 Objective-C最大的特色是承自Smalltalk的(),此机制与今日C++式之主流风格差异甚大。 A.消息传递模型(message passing) B.阅读者模式模型 C.单例模式模型 D.广播模型 CSS的定位常用属性有以下几个值() A.static B.relative C.fixed D.absolute 以下哪些是语义化标签? A.div B.span C.article D.header 在shell中,使用一个定义过的变量,引用时在变量名前加()。 A.$ B.& C.* D.@ SQL中删除数据库的关键字是()。 A.select B.insert C.delete D.drop SQL语句中删除一个表中记录,使用的关键字是()。 A.select B.insert C.delete

黑马程序员:为什么更要用redis,应该如何使用redis

为什么缓存数据库更要首选redis?如何使用redis? 一、使用缓存数据库为什么首选用redis? 我们都知道,把一些热数据存到缓存中可以极大的提高速度,那么问题来了,是用Redis 好还是Memcached好呢,以下是它们两者之间一些简单的区别与比较: 1. Redis不仅支持简单的k/v类型的数据,同时还支持list、set、zset(sorted set)、hash等数据结构的存储,使得它拥有更广阔的应用场景。 2. Redis最大的亮点是支持数据持久化,它在运行的时候可以将数据备份在磁盘中,断电或重启后,缓存数据可以再次加载到内存中,只要Redis配置的合理,基本上不会丢失数据。 3. Redis支持主从模式的应用。 4. Redis单个value的最大限制是1GB,而Memcached则只能保存1MB内的数据。 5. Memcache在并发场景下,能用cas保证一致性,而Redis事务支持比较弱,只能保证事务中的每个操作连续执行。 6. 性能方面,根据网友提供的测试,Redis在读操作和写操作上是略领先Memcached的。 从上面这些看出,Redis的优势比Memcached大,不过Memcached也还是有它用武之地的。要是只选择装其中一种的话,还是要首选Redis。 二、如何使用redis? 你一定要知道的是:redis的key名要区分大小写,在redis中除了和空格外,其他的字符都可以做为key名,且长度不做限制,不过为了性能考虑,一般key名不要设置的太长。redis 功能强大,支持数据类型丰富,以下是redis操作命令大全,基本上涵盖了redis所有的命令! 1、redis命令基本篇 1)、【set key value 】存入一个key和值。如:set myname reson 2)、【get key 】读取一个key的值。 3)、【del key 】删除一个key。 4)、【del key1 key2 ... keyN 】删除多个key。如:del myname1 myname2 5)、【exists key 】判断一个key是否存在。 6)、【type key 】查看key的类型。 7)、【rename key keyNew 】重命名key名。如:rename myname myname2 8)、【dbsize 】查看当前库中的key的条数。

SSDB入门基础

SSDB ?入?门基础 ?文档信息!2 SSDB 简介!3 PHP 使?用?示例!3 SSDB 数据类型!3 KV!3 Hashmap!3 Zset!4安装和运?行!4使?用 SSDB 命令?行客户端(ssdb-cli)!6运?行 ssdb-cli!6进?行 KV 操作!6进?行 hashmap 操作!6进?行 zset 操作!7 SSDB 应?用程序开发!7?示例 1: 在线书店!8保存书籍信息!8建?立排序索引!8分?页浏览!8相关链接!8

?文档信息 作者: ideawu ??网站: https://www.360docs.net/doc/9b14507802.html,/?日期: 2013-09-29 更新: 2013-10-13

SSDB 简介 SSDB 是?一个 C++ 语?言开发的?高性能开源 NoSQL 数据库服务器, ?支持 Key-value, Key-hashmap, Key-zset(sorted set) 等数据结构, ?十分适合存储数亿条级别的列表, 排序表等集合数据, 是 Redis 的替代和增强?方案. SSDB 具有和 Redis 相似的 API, ?支持的客户端包括: PHP, C++, Python, Java, Lua, Ruby, Nodejs, etc. 项??目主?页: https://https://www.360docs.net/doc/9b14507802.html,/ideawu/ssdb PHP 使?用?示例 set('key', '123'); $resp = $ssdb->get('key'); echo $resp; // output: 123 SSDB 数据类型 SSDB ?支持三种数据类型, 别分是 KV(key-value), Hashmap(map), Zset(sorted set). 三种数据类型处于不同的命名区间, 所以不同类型的数据可以起相同的名字, 但不建议这么做. KV KV 数据类型?支持基本的 set(), get(), del(), incr() ?几种操作. KV 数据类型主要?用于存储离散的, 之间没有关系(或者关系被忽略)的?大数据, 如图?片?文件, ?大段?文本等. ?一般 KV 类型都可以被 Hashmap 替代, 但 KV 会?比 Hashmap 性能?高?一些. key value k1vc k2vx k3vy Hashmap Hashmap 类型和 KV 功能相似, 可?用于存储?大体积的数据, 但不同的数据项在业务上处于某个集合. 并且, Hashmap 维护了?一个集合?大?小的计数. Hashmap 中的数据项是 Key-value 的键值对, 并且按 Key 的字节数组顺序进?行排序.

Redis中文入门手册

Redis中文入门手册1.0 中国海事服务网(https://www.360docs.net/doc/9b14507802.html,) zhangli收集整理

目录 1)Redis简介 (3) 2)数据类型 (3) 2.1.Redis的Key (3) 2.1.1.key相关指令介绍 (3) 2.2.Redis的vaule (3) 2.2.1.string类型 (3) 2.2.2.hash类型 (4) 2.2.3.list类型 (5) 2.2.4.set类型 (5) 2.2.5.sorted set类型 (6) 3)持久化 (7) 3.1.快照方式:(默认持久化方式) (7) 3.2.日志追加方式: (7) 4)虚拟内存(适用于value比key大的情况) (8) 4.1.Redis虚拟内存简介 (8) 4.2.Redis虚拟内存相关配置 (8) 4.3.redis虚拟内存工作方式简介 (9) 4.3.1.当vm-max-threads设为0时(阻塞方式) (9) 4.3.2.当vm-max-threads大于0时(工作线程方式) (9) 5)主从同步 (9) 5.1.Redis主从复制简介 (9) 5.2.Redis主从复制的过程介绍 (10) 附录A:redis的安装与配置 (10) 1.1.安装 (10) 1.1.1.编译安装 (10) 1.1.2.配置 (11) 1.1.3.启动redis (11) 1.1.4.关闭redis (11) 1.1.5.更新安装redis (12) 1.1.6.redis系统管理相关指令简介 (12) 附录B:安装phpredis模块 (12) 参考资料与知识扩展 (13)

REDIS应用场景及建议

Redis在很多方面与其他数据库解决方案不同:它使用内存提供主存储支持,而仅使用硬盘做持久性的存储;它的数据模型非常独特,用的是单线程。另一个大区别在于,你可以在开发环境中使用Redis的功能,但却不需要转到Redis。 转向Redis当然也是可取的,许多开发者从一开始就把Redis作为首选数据库;但设想如果你的开发环境已经搭建好,应用已经在上面运行了,那么更换数据库框架显然不那么容易。另外在一些需要大容量数据集的应用,Redis也并不适合,因为它的数据集不会超过系统可用的内存。所以如果你有大数据应用,而且主要是读取访问模式,那么Redis并不是正确的选择。 然而我喜欢Redis的一点就是你可以把它融入到你的系统中来,这就能够解决很多问题,比如那些你现有的数据库处理起来感到缓慢的任务。这些你就可以通过Redis来进行优化,或者为应用创建些新的功能。在本文中,我就想探讨一些怎样将Redis加入到现有的环境中,并利用它的原语命令等功能来解决传统环境中碰到的一些常见问题。在这些例子中,Redis都不是作为首选数据库。 显示最新的项目列表 下面这个语句常用来显示最新项目,随着数据多了,查询毫无疑问会越来越慢。 1.SELECT * FROM foo WHERE ... ORDER BY time DESC LIMIT 10 在Web应用中,“列出最新的回复”之类的查询非常普遍,这通常会带来可扩展性问题。这令人沮丧,因为项目本来就是按这个顺序被创建的,但要输出这个顺序却不得不进行排序操作。 类似的问题就可以用Redis来解决。比如说,我们的一个Web应用想要列出用户贴出的最新20条评论。在最新的评论边上我们有一个“显示全部”的链接,点击后就可以获得更多的评论。 我们假设数据库中的每条评论都有一个唯一的递增的ID字段。 我们可以使用分页来制作主页和评论页,使用Redis的模板: -每次新评论发表时,我们会将它的ID添加到一个Redis列表: 1.LPUSH https://www.360docs.net/doc/9b14507802.html,ments -我们将列表裁剪为指定长度,因此Redis只需要保存最新的5000条评论: 1.LTRIM https://www.360docs.net/doc/9b14507802.html,ments 0 5000 -每次我们需要获取最新评论的项目范围时,我们调用一个函数来完成(使用伪代码): 1.FUNCTION get_latest_comments(start,num_items):

面料英语

面料英文知识Slubbed Single drill? 面料名称英语翻译(转) 1. 棉织物:COTTON FABRIC 2. 平纹织物:PLAIN CLOTH 3. 斜纹织物:TWILL CLOTH 4. 缎纹织物:SATIN AND SATEEN CLOTH 5. 纯纺织物:PURE YARN FABRIC 6. 混纺织物:BLENDED FABRIC 7. 混并织物:MIXTURE 8. 交织织物:MIXED FABRIC 9. 服装用织物:DRESS FABRIC 10. 装饰用织物:FURNISHING FABRIC 11. 产业用织物:TECHNICAL FABRIC 12. 平布:PLAIN CLOTH 13. 粗平布:COARSE SHEETING 14. 中平布:PLAIN CLOTH 15. 细平布:FINE PLAIN 16. 粘纤平布:VISCOSE PLAIN CLOTH 17. 富纤平布:POLYNOSIC PLAIN CLOTH 18. 粘/棉平布:VISCOSE/COTTON PLAIN CLOTH 19. 粘/维平布:VISCOSE/VINYLON PLAIN CLOTH 20. 涤/棉平布:T/C PLAIN CLOTH 21. 涤/粘平布:POLYESTERE/VISCOSE PLAIN CLOTH 22. 棉/丙平布:COTTON/POLYPROPYLENE PLAIN CLOTH 23. 棉/维平布:C/V PLAIN CLOTH 24. 细纺:CAMBRIC 25. 涤/棉细纺:T/C CAMBRIC 26. 府绸:POPLIN 27. 纱府绸:POPLINETTE 28. 线府绸:THREADY POPLIN 29. 涤/棉府绸:T/C POPLIN 30. 棉/维府绸:C/V POPLIN 31. 麻纱:HAIR CORDS 32. 柳条麻纱:STRIPED HAIR CORDS 33. 异经麻纱:END-AND-END HAIR CORDS 34. 提花麻纱:FIGURED HAIR CORDS 35. 罗布:LENO-LIKE CLOTH 36. 罗缎:BENGALINE,TUSSORES 37. 巴厘纱:VOILE 38. 麦尔纱:MULL 39. 防绒布:DOWN-PROOF FABRIC 40. 双经布:DOUBLE ENDS FABRIC 41. 双纬布:DOUBLE WEFT FABRIC

iBase4J —— Java 开源框架整合-系统的基础

iBase4J —— Java 开源框架整合-系统的基础 iBase4J应用于SpringMVC,Mybatis,Redis缓存,Dubbo,ActiveMQ,面向模块分布式基础SpringSession统一管理session,Druid数据库连接等等 主要功能如下: 1、数据库 Druid数据库连接池,监控数据库访问性能,详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。数据库密码加密。 2、持久层 mybatis持久化,aop切换数据库实现读写分离,PageHelper分页。Transtraction 注解Jta事务。 3、MVC 基于spring mvc注解。Exception统一管理。基于session的国际化提示信息,职责链模式的本地语言拦截器、登录拦截器、权限拦截器。 4、调度 Spring task, 可以查询已经注册的任务。立即执行一次任务。 5、缓存和Session 注解redis缓存数据,Spring-session和redis实现分布式session同步。 6、多系统交互 Dubbo,ActiveMQ多系统交互,ftp/sftp发送文件到独立服务器,使文件服务分离。没有权限的文件只用negix代理即可。

7、日志 log4j2打印日志,业务日志和调试日志分开打印。同时基于时间和文件大小分割日志文件。 8、工具类 上传下载excel,汉字转拼音,身份证号码验证,数字转大写人民币,FTP/SFTP上传下载,发送邮件,redis缓存,加密等等。 9、项目构建 maven构建项目,mybatis generator生成mybatis映射文件。 说明:启动项目前请安装Redis和ZooKeeper,您可以在附件中下载。系统中均使用默认配置。 eclipse使用maven命令: mybatis-generator:generate生成mybatis文 件; clean:clean package -P build tomcat7:run-war-only 启动tomcat7。

相关文档
最新文档