Redis集成Spring
Redis instal
centos 安装和启动
https://www.cnblogs.com/renzhicai/p/7773080.html
- 安装完之后,修改配置文件,修改daemonize设置为yes,
守护进程模式启动 redis - 设置requirepass huangzs
然后启动之后,客户端连接之后, auth huangzs 就可以了
https://www.cnblogs.com/756623607-zhang/p/6859540.html
redis-server redis.conf
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 依赖
|
配置 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
添加配置application.xml
Redis 参考demo
https://github.com/huangzhenshi/SSM_REDIS_ANNOTATION_DEMO/tree/master
注意事项:
访问url 要加 *.do 如下所示
http://localhost:8082/lyz/getUserById.do?id=1开先开启redis才行啊
- mysql 数据库 创建 lyz 数据库,导入对应的初始数据,数据库 root 123456
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>