redis

2017-12-19  本文已影响0人  Xr丶_c967

数据库的持久化数据主要是面向磁盘,磁盘读/写 比较慢

在物联网中 让让存在大量的数据需求,一瞬间成千上万个请求到来,需要系统在极短时间内完成成千上万次读/写操作,往往数据库承受不住,导致数据库系统瘫痪,最终导致服务器宕机。

为了克服这些问题,javaWeb 引用NOSQL技术

Nosql(Redis  MongoDb)是一种基于内存的简易数据库,Redis性能优越,可以支持每秒十几万次的读/写操作,支持集群,分布式,主从同步等配置可以在高并发访问的场景下保证数据安全和一致性

redis性能优越:

1 基于ANSIC语言编写

2 基于内存的读/写

3 数据库结构简单

  应用场景

1 缓存常用的数据(数据的读大于写,业务数据相对较少)

2 需要在高速 读/写 

配置:

网址:

https://github.com/ServiceStack/redis-windows/tree/master/downloads

在本地目录下创建startup.cmd文件内容redis-server redis.windows.conf

java

Redis的连接池提供了类 redis.clienTs.jedis.JedisPool来创建Redis连接池对象。

使用这个对象,需要使用类redis.clients.jedis.JedisPoolConfig对连接池进行配置。

commons-pool配置数据池连接

http://commons.apache.org/proper/commons-pool/download_pool.cgi

配置Spring提供的连接工厂

在使用Spring提供的RedisTemplate之前需要配置Spring提供的连接工厂。

4种工厂模型

JredisConnectionFactory

JedisConnectionFactory

LettuceConnectionFactory

SrpConnectionFactory

都是接口RedisConnectionFactory的实现类



序列化

普通连接没有办法把java对象存入Redis,需要对象序列化,使用Redis存储。取回序列化的内容后,转变为java对象,Spring模板中提供了封装的方案,内部提供RedisSerializer接口和一些实现类。

序列化器:

GenericJackson2JsonRedisSerializer通过Json2.jar的包,将Redis对象的序列化器

Jackson2JsonRedisSerializer通过Jackson2.jar包提供的序列化进行转换

JDKSerializationRedisSerializer使用JDK的序列化器进行转换

OxmSerializer使用Spring0/X对象Object和XML相互转换

StringRedisSerializer用字符串进行序列化

GenericToStringSerializer

通过通用的字符串序列化进行相互转换

redis 中只能提供字符串型的操作,java是面向对象的,需要redis存储的字符串和java对象相互转化

spring 进行了封装和支持,提供序列化的 设计框架和一些序列化的类,通过序列化把java对象转换,redis存储起来,读取时,再由序列化过的字符串转化为对象

RedisTemplate

Spring提供的RedisTemplate有两个属性

keySerializer--键序列器

valueSerializer值序列器

上一篇 下一篇

猜你喜欢

热点阅读