发表于: 2018-03-11 19:19:38

1 780


昨天完成memcached的缓存压力测试,今天学习Redis缓存

以前没有怎么多的了解这个Redis开始准备安装

                                             

现在Windows缓存安装Windows

https://github.com/MicrosoftArchive/redis/releases(下载链接)

下载解压放在你的电脑里面

运行起来的效果

还有用cmd --->进入安装的目录运行

redis-server.exe redis.windows.conf (也是同样的效果)

接下来在linux(服务器)环境下面安装

https://redis.io/download(安装步骤)

下载Redis

$ wget http://download.redis.io/releases/redis-4.0.8.tar.gz

解压

$ tar xzf redis-4.0.8.tar.gz

$ mv redis-4.0.8 /usr $ cd redis-4.0.8

安装 $ make

启动Redis

$ src/redis-server

关闭 Ctrl + C

RedisWindows平台和linux平台安装成功

接下来准备在前面的项目里面配置Redis缓存机制(替换开始memcached)

http://blog.csdn.net/tomcat_2014/article/details/55260306(参考文档)

http://blog.csdn.net/l1028386804/article/details/52141372(参考文档)

maven 添加相关的jar

<!--redis-->

<dependency>

<groupId>org.springframework.data</groupId>

<artifactId>spring-data-redis</artifactId>

<version>1.7.2.RELEASE</version>

</dependency>

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.8.1</version>

</dependency>

添加redis.properties

#访问地址

redis.host=47.94.***.**

#访问端口

redis.port=6379

#注意,如果没有password,此处不设置值,但这一项要保留

redis.password=

 

#最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。

redis.maxIdle=300

#连接池的最大数据库连接数。设为0表示无限制

redis.maxActive=600

#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。

redis.maxWait=1000

#borrow一个jedis实例时,是否提前进行alidate操作;如果为true,则得到的jedis实例均是可用的;

redis.testOnBorrow=true

 

添加redis的配置

<!-- redis config start -->

<!-- 配置JedisPoolConfig实例 -->

<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">

<property name="maxIdle" value="${redis.maxIdle}" />

<property name="maxTotal" value="${redis.maxActive}" />

<property name="maxWaitMillis" value="${redis.maxWait}" />

<property name="testOnBorrow" value="${redis.testOnBorrow}" />

</bean>

 

<!-- 配置JedisConnectionFactory -->

<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">

<property name="hostName" value="${redis.host}"/>

<property name="port" value="${redis.port}"/>

<property name="password" value="${redis.pass}"/>

<property name="database" value="${redis.dbIndex}"/>

<property name="poolConfig" ref="poolConfig"/>

</bean>

 

<!-- 配置RedisTemplate -->

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">

<property name="connectionFactory" ref="jedisConnectionFactory"/>

</bean>

 

<!-- 配置RedisCacheManager -->

<bean id="redisCacheManager" class="org.springframework.data.redis.cache.RedisCacheManager">

<constructor-arg name="redisOperations" ref="redisTemplate" />

<property name="defaultExpiration" value="${redis.expiration}"/>

</bean>

 

<!-- 配置RedisCacheConfig -->

<bean id="redisCacheConfig" class="com.fuwei.util.RedisCacheConfig">

<constructor-arg ref="jedisConnectionFactory" />

<constructor-arg ref="redisTemplate" />

<constructor-arg ref="redisCacheManager" />

</bean>

 

还有Spring与配置文件来管理的redis缓存配置类

package com.fuwei.util;

 

import java.lang.reflect.Method;

import org.springframework.cache.CacheManager;

import org.springframework.cache.annotation.CachingConfigurerSupport;

import org.springframework.cache.annotation.EnableCaching;

import org.springframework.cache.interceptor.KeyGenerator;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.redis.cache.RedisCacheManager;

import org.springframework.data.redis.connection.RedisConnectionFactory;

import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;

import org.springframework.data.redis.core.RedisTemplate;

 

/**

* Spring与配置文件来管理的redis缓存配置类

* @author liuyazhuang

*

*/

@Configuration

@EnableCaching

public class RedisCacheConfig extends CachingConfigurerSupport {

 

private volatile JedisConnectionFactory mJedisConnectionFactory;

private volatile RedisTemplate<String, String> mRedisTemplate;

private volatile RedisCacheManager mRedisCacheManager;

 

public RedisCacheConfig() {

super();

}

 

public RedisCacheConfig(JedisConnectionFactory mJedisConnectionFactory, RedisTemplate<String,String> mRedisTemplate,

RedisCacheManager mRedisCacheManager) {

super();

this.mJedisConnectionFactory = mJedisConnectionFactory;

this.mRedisTemplate = mRedisTemplate;

this.mRedisCacheManager = mRedisCacheManager;

}

 

public JedisConnectionFactory redisConnectionFactory() {

return mJedisConnectionFactory;

}

 

public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory cf) {

return mRedisTemplate;

}

 

public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) {

return mRedisCacheManager;

}

 

@Bean

public KeyGenerator customKeyGenerator() {

return new KeyGenerator() {

@Override

public Object generate(Object o, Method method, Object... objects) {

StringBuilder sb = new StringBuilder();

sb.append(o.getClass().getName());

sb.append(method.getName());

for (Object obj : objects) {

sb.append(obj.toString());

}

return sb.toString();

}

};

}

}

redis的安装和配置完成了

 

目前就是弄到这里,卡起了,项目的redis还没有跑通,感觉还是有点问题

(可能是对redis的不熟悉)

 

今天完成的事情:就是在Windows环境和linux的环境安装和配置redis缓存的机制,还有编写javaspring集成redis,看了很多的博客,流程是这个样子的,困难是对这个不熟悉,才接触,好多没有注意的小细节,自己也不好找问题,demo还没有跑通

 

今天遇到的困难:就是demo还没有跑通安装和配置都简单,就是不熟悉redisspring配置,简单的java原生的配置简单,慢慢多查资料,把这个问题解决啦

 

明天的计划:完成redis的项目的跑起来

坚持

 



返回列表 返回列表
评论

    分享到