Maven_Spring_Redis 实例
来源:互联网 发布:wind资讯行业经济数据 编辑:程序博客网 时间:2024/06/16 20:31
Linux_Redis 安装笔记
Linux_Redis_Cluster 安装笔记
BaseDao.java
package com.demo.redis.dao;import java.util.Collection;import java.util.List;import java.util.Map;import java.util.Set;import java.util.concurrent.TimeUnit;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;public abstract class BaseDao<K, V, HK, HV> { @Autowired protected RedisTemplate<K, V> redisTemplate; public void deleteKey(K key) { redisTemplate.delete(key); } public void set(K key, V value) { redisTemplate.opsForValue().set(key, value); } public void set(K key, V value, final long timeout, final TimeUnit unit) { redisTemplate.opsForValue().set(key, value, timeout, unit); } public V get(final Object key) { return redisTemplate.opsForValue().get(key); } // List public void setForList(K key, long index, V value) { redisTemplate.boundListOps(key).set(index, value); } public Long leftPushForList(K key, V value) { return redisTemplate.opsForList().leftPush(key, value); } public Long leftPushAllForList(K key, V... values) { return redisTemplate.opsForList().leftPushAll(key, values); } public Long leftPushAllForList(K key, Collection<V> values) { return redisTemplate.opsForList().leftPushAll(key, values); } public Long rightPushForList(K key, V value) { return redisTemplate.opsForList().rightPush(key, value); } public Long rightPushAllForList(K key, V... values) { return redisTemplate.opsForList().rightPushAll(key, values); } public Long rightPushAllForList(K key, Collection<V> values) { return redisTemplate.opsForList().rightPushAll(key, values); } public void updateList(K key, long index, V value) {// 修改 redisTemplate.boundListOps(key).set(index, value); } public void leftPopForList(K key) { redisTemplate.boundListOps(key).leftPop(); } public void removeFromList(K key, long index, V value) {// 修改 redisTemplate.boundListOps(key).remove(index, value); } public void getListValue(K key, long index) {// 查詢单个值 redisTemplate.boundListOps(key).index(index); } public Long sizeOfList(K key) {// size return redisTemplate.boundListOps(key).size(); } public List<V> getList(K key) {// 查询所有 return redisTemplate.boundListOps(key).range(0, sizeOfList(key)); } public List<V> getSubList(K key, long start, long end) {// 查询部分列表 return redisTemplate.boundListOps(key).range(start, end); } // Set public Long addSet(K key, Set<V> values) { Long count = (long) 0; for (V v : values) { count += redisTemplate.boundSetOps(key).add(v); } return count; } public Long removeFromSet(K key, V value) { return redisTemplate.boundSetOps(key).remove(value); } public Long sizeOfSet(K key) { return redisTemplate.boundSetOps(key).size(); } public Set<V> getSet(K key) { return redisTemplate.boundSetOps(key).members(); } // Map<K, V> public void putAllForMap(K key, Map<? extends HK, ? extends HV> ageMap) { redisTemplate.boundHashOps(key).putAll(ageMap); } public Map<HK, HV> getMap(K key) { return (Map<HK, HV>) redisTemplate.boundHashOps(key).entries(); } public Boolean hasHashKey(K key, Object hashKey) { return redisTemplate.boundHashOps(key).hasKey(hashKey); } public void setForMap(K key, Object hashKey, Object hashValue) { redisTemplate.boundHashOps(key).put(hashKey, hashValue); } public Set<HK> hashKeys(K key) { return (Set<HK>) redisTemplate.boundHashOps(key).keys(); } public Object getHashValue(K key, Object hashKey) { return redisTemplate.boundHashOps(key).get(hashKey); } public Long removeFromMap(K key, Object hashKey) { return redisTemplate.boundHashOps(key).delete(hashKey); }}
UserDao.java
package com.demo.redis.dao.impl;import org.springframework.stereotype.Repository;import com.demo.redis.dao.BaseDao;@Repositorypublic class UserDao extends BaseDao<String, String, String, String> {}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:property-placeholder location="classpath:redis.properties" /> <context:component-scan base-package="com.demo.redis"></context:component-scan> <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> <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:host-name="${redis.host}" p:port="${redis.port}" p:pool-config-ref="poolConfig" /> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <property name="connectionFactory" ref="connectionFactory" /> </bean></beans>
applicationContext2.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:property-placeholder location="classpath:redis.properties" /> <context:component-scan base-package="com.demo.redis"></context:component-scan> <bean id="redisClusterConfig" class="org.springframework.data.redis.connection.RedisClusterConfiguration"> <property name="maxRedirects" value="6"></property> <property name="clusterNodes"> <set> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="192.168.216.139"></constructor-arg> <constructor-arg name="port" value="7001"></constructor-arg> </bean> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="192.168.216.139"></constructor-arg> <constructor-arg name="port" value="7002"></constructor-arg> </bean> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="192.168.216.139"></constructor-arg> <constructor-arg name="port" value="7003"></constructor-arg> </bean> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="192.168.216.139"></constructor-arg> <constructor-arg name="port" value="7004"></constructor-arg> </bean> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="192.168.216.139"></constructor-arg> <constructor-arg name="port" value="7005"></constructor-arg> </bean> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="192.168.216.139"></constructor-arg> <constructor-arg name="port" value="7006"></constructor-arg> </bean> </set> </property> </bean> <bean id="redisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <constructor-arg name="clusterConfig" ref="redisClusterConfig" /> <property name="timeout" value="5000" /> <!-- <property name="poolConfig" ref="poolConfig"/> --> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <property name="connectionFactory" ref="redisConnectionFactory" /> </bean></beans>
log4j.properties
# log dir#logdir=D:/remote/logs# Global logging configuration, debug < info < warn < error < fatal# log4j.rootLogger = [debug], [info], [warn], [error], [fatal], [stdout]log4j.rootLogger=info, stdout# Console outputlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyy-MM-dd HH:mm:ss } [%t] %5p %c{1}:%L - %m%n# error outputlog4j.appender.error=org.apache.log4j.DailyRollingFileAppender#log4j.appender.error.MaxFileSize=10MB#log4j.appender.error.MaxBackupIndex=10log4j.appender.error.File=${logdir}/error.txtlog4j.appender.error.layout=org.apache.log4j.PatternLayoutlog4j.appender.error.layout.ConversionPattern=%d %-5p (%13F:%L) %3x - %m%n# debug outputlog4j.appender.debug=org.apache.log4j.DailyRollingFileAppender#log4j.appender.debug.MaxFileSize=10MB#log4j.appender.debug.MaxBackupIndex=10log4j.appender.debug.File=${logdir}/debug.txtlog4j.appender.debug.layout=org.apache.log4j.PatternLayoutlog4j.appender.debug.layout.ConversionPattern=%d %-5p (%13F:%L) %3x - %m%n# info outputlog4j.appender.debug=org.apache.log4j.DailyRollingFileAppender#log4j.appender.debug.MaxFileSize=10MB#log4j.appender.debug.MaxBackupIndex=10log4j.appender.debug.File=${logdir}/info.txtlog4j.appender.debug.layout=org.apache.log4j.PatternLayoutlog4j.appender.debug.layout.ConversionPattern=%d %-5p (%13F:%L) %3x - %m%n
redis.properties
# Redis settings redis.host=192.168.216.132redis.port=6379#redis.pass=java2000_wl redis.maxIdle=300 redis.maxActive=600 redis.maxWait=1000 redis.testOnBorrow=true
RedisClusterTest.java
package com.demo.redis.test;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.demo.redis.dao.impl.UserDao;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = { "classpath*:applicationContext2.xml" })public class RedisClusterTest { @Autowired private UserDao userDao; @Test public void opsForValue() { // userDao.set("key1", "value1"); // System.out.println(userDao.get("key1")); for (int i = 0; i < 100; i++) { userDao.set("key" + i, "value" + i); System.out.println(userDao.get("key" + i)); } } // @Test public void opsForList() { userDao.deleteKey("names"); List<String> names = new ArrayList<String>(); names.add("zhangsan"); names.add("lisi"); names.add("wangwu"); names.add("zhaoliu"); userDao.rightPushAllForList("names", names);// 从左向右添加数据 long size = userDao.sizeOfList("names"); List<String> namesFromRedis = userDao.getList("names"); // 返回列表 for (String name : namesFromRedis) { System.out.println(name); } System.out.println("-----------------------------------------"); userDao.setForList("names", 1, "lili1"); namesFromRedis = userDao.getList("names"); for (String name : namesFromRedis) { System.out.println(name); } System.out.println("-----------------------------------------"); userDao.leftPopForList("names"); size = userDao.sizeOfList("names"); namesFromRedis = userDao.getList("names"); for (String name : namesFromRedis) { System.out.println(name); } System.out.println("-----------------------------------------"); System.out.println(userDao.sizeOfList("names"));// 4 userDao.deleteKey("names");// 删除key System.out.println(userDao.sizeOfList("names"));// 0 } // @Test public void opsForSet() { userDao.deleteKey("names"); Set<String> names = new HashSet<String>(); names.add("zhangsan"); names.add("lisi"); names.add("wangwu"); names.add("zhaoliu"); userDao.addSet("names", names); long size = userDao.sizeOfSet("names");// size System.out.println("-----------------------------------------"); userDao.removeFromSet("names", "zhangsan"); Set<String> nameSet = userDao.getSet("names");// 返回set for (String name : nameSet) { System.out.println(name); } } // @Test public void opsForHash() { userDao.deleteKey("ages"); Map<String, String> ageMap = new HashMap<String, String>(); ageMap.put("zhangsan", "24"); ageMap.put("lisi", "25"); ageMap.put("wangwu", "26"); System.out.println("-----------------------------------------"); userDao.putAllForMap("ages", ageMap); ageMap = userDao.getMap("ages"); for (String name : ageMap.keySet()) { System.out.println(name + "," + ageMap.get(name)); } if (userDao.hasHashKey("ages", "zhangsan")) { userDao.setForMap("ages", "zhangsan", "23"); } System.out.println("-----------------------------------------"); userDao.removeFromMap("ages", "wangwu"); Set<String> names = userDao.hashKeys("ages"); for (String name : names) { System.out.println(name + "," + userDao.getHashValue("ages", name));// 查询 } }}
RedisTest.java
package com.demo.redis.test;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.demo.redis.dao.impl.UserDao;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = { "classpath*:applicationContext.xml" })public class RedisTest { @Autowired private UserDao userDao; @Test public void opsForValue() { userDao.set("key1", "value1"); System.out.println(userDao.get("key1")); } // @Test public void opsForList() { userDao.deleteKey("names"); List<String> names = new ArrayList<String>(); names.add("zhangsan"); names.add("lisi"); names.add("wangwu"); names.add("zhaoliu"); userDao.rightPushAllForList("names", names);// 从左向右添加数据 long size = userDao.sizeOfList("names"); List<String> namesFromRedis = userDao.getList("names"); // 返回列表 for (String name : namesFromRedis) { System.out.println(name); } System.out.println("-----------------------------------------"); userDao.setForList("names", 1, "lili1"); namesFromRedis = userDao.getList("names"); for (String name : namesFromRedis) { System.out.println(name); } System.out.println("-----------------------------------------"); userDao.leftPopForList("names"); size = userDao.sizeOfList("names"); namesFromRedis = userDao.getList("names"); for (String name : namesFromRedis) { System.out.println(name); } System.out.println("-----------------------------------------"); System.out.println(userDao.sizeOfList("names"));// 4 userDao.deleteKey("names");// 删除key System.out.println(userDao.sizeOfList("names"));// 0 } // @Test public void opsForSet() { userDao.deleteKey("names"); Set<String> names = new HashSet<String>(); names.add("zhangsan"); names.add("lisi"); names.add("wangwu"); names.add("zhaoliu"); userDao.addSet("names", names); long size = userDao.sizeOfSet("names");// size System.out.println("-----------------------------------------"); userDao.removeFromSet("names", "zhangsan"); Set<String> nameSet = userDao.getSet("names");// 返回set for (String name : nameSet) { System.out.println(name); } } // @Test public void opsForHash() { userDao.deleteKey("ages"); Map<String, String> ageMap = new HashMap<String, String>(); ageMap.put("zhangsan", "24"); ageMap.put("lisi", "25"); ageMap.put("wangwu", "26"); System.out.println("-----------------------------------------"); userDao.putAllForMap("ages", ageMap); ageMap = userDao.getMap("ages"); for (String name : ageMap.keySet()) { System.out.println(name + "," + ageMap.get(name)); } if (userDao.hasHashKey("ages", "zhangsan")) { userDao.setForMap("ages", "zhangsan", "23"); } System.out.println("-----------------------------------------"); userDao.removeFromMap("ages", "wangwu"); Set<String> names = userDao.hashKeys("ages"); for (String name : names) { System.out.println(name + "," + userDao.getHashValue("ages", name));// 查询 } }}
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>maven-spring-redis</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- junit单元测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- log4j日志 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency> <!-- spring整合Junit --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.0.RELEASE</version> <scope>test</scope> </dependency> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.7.6.RELEASE</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> </dependencies></project>
maven-spring-redis源码
阅读全文
0 0
- Maven_Spring_Redis 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- 实例
- Windows下Mongodb安装及配置
- 全微分方程
- 移动端meta常规设置
- DoG算子
- android中常用的4种线程池
- Maven_Spring_Redis 实例
- java的GC机制--javaGC机制
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xx' is defined
- oracle10g远程连接sys出错01017
- android 三级缓存
- C++ 继承
- Java编辑不能输入小数点
- 史上最强linux下配置java环境
- Spring XML 配置文件没有提示问题解决