Contents
  1. 1. Redis instal
  2. 2. Redis 集成spring
  3. 3. Redis重写keyGenerator
  4. 4. Redis 参考demo
  5. 5. Redis 实现session共享

Redis instal

  1. 安装完之后,修改配置文件,修改daemonize设置为yes,
    守护进程模式启动 redis
  2. 设置requirepass huangzs
    然后启动之后,客户端连接之后, auth huangzs 就可以了
    https://www.cnblogs.com/756623607-zhang/p/6859540.html
  1. redis-server redis.conf

  2. spring配置密码

    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
    <property name="hostName" value="127.0.0.1"/>
    <property name="port" value="6379"/>
    <property name="password" value="huangzs" />
    <property name="database" value="0"/>
    <property name="poolConfig" ref="poolConfig"/>
    </bean>

然后 redis-cli 直接客户端接入了

Redis 集成spring

  • maven 依赖
<!-- redis cache related.....start -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.6.0.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.3</version>
</dependency>
<!-- redis cache related.....end -->
  • 配置 poolConfig、jedisConnectionFactory、redisTemplate

    <!-- 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="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>
  • service层调用

    @Cacheable(value="getById")
    public String getById(Integer id) {
    return template.selectOne("com.lyz.user.mapper.UserMapper.getNameById", id);
    }

Redis重写keyGenerator

因为默认情况下,redis的key为 方法名拼接参数的名,例如下面的keyId 为 getByIdid1

@Cacheable(value="getById")
public String getById(Integer id) {
return template.selectOne("com.lyz.user.mapper.UserMapper.getNameById", id);
}

添加配置application.xml

<!-- 配置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.lyz.cache.redis.RedisCacheConfig">
<constructor-arg ref="jedisConnectionFactory" />
<constructor-arg ref="redisTemplate" />
<constructor-arg ref="redisCacheManager" />
</bean>

Redis 参考demo

https://github.com/huangzhenshi/SSM_REDIS_ANNOTATION_DEMO/tree/master
注意事项:

Redis 实现session共享

注意事项: 在nginx 配置 ip_hash的话,会根据IP解决负载的问题,分析IP地址,每个用户每次都会访问同一个服务器,但是如果是内网的话,大家实际的IP是一个,所以不适合用户在一个公司,而适合真正的不同的IP地址的访问

参考demo2:
https://github.com/huangzhenshi/SSM_REDIS_ANNOTATION_DEMO/tree/master

  • pom 添加依赖

    <dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
    <version>1.1.1.RELEASE</version>
    <type>pom</type>
    </dependency>
  • application 配置里面添加管理的session Bean

    <!-- session设置 -->
    <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
    <property name="maxInactiveIntervalInSeconds" value="3600"></property>
    </bean>
  • web.xml里面添加过滤,要放在最前面的位置

    <filter>
    <filter-name>springSessionRepositoryFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>springSessionRepositoryFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
Contents
  1. 1. Redis instal
  2. 2. Redis 集成spring
  3. 3. Redis重写keyGenerator
  4. 4. Redis 参考demo
  5. 5. Redis 实现session共享