本文共 5292 字,大约阅读时间需要 17 分钟。
1.简单介绍
redis 是基于C语言开发。
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
redis 是一个 缓存数据库(片面的理解) 既可以做缓存,也可以将数据持久化到磁盘中!
2.pom.xml 引入相关jar (曾经因jar 版本问题出现报错,请注意)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | < dependency > < groupId >org.apache.commons</ groupId > < artifactId >commons-pool2</ artifactId > < version >2.2</ version > </ dependency > < dependency > < groupId >org.springframework.data</ groupId > < artifactId >spring-data-redis</ artifactId > < version >1.7.5.RELEASE</ version > </ dependency > < dependency > < groupId >redis.clients</ groupId > < artifactId >jedis</ artifactId > < version >2.9.0</ version > </ dependency > |
3.spring-redis.xml 配置文件,配置关键bean redisTemplate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns:context = "http://www.springframework.org/schema/context" xmlns:p = "http://www.springframework.org/schema/p" xmlns:mvc = "http://www.springframework.org/schema/mvc" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:tx = "http://www.springframework.org/schema/tx" xmlns:util = "http://www.springframework.org/schema/util" xmlns:aop = "http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <!-- <context:property-placeholder location="classpath:redis-config.properties"/> --> < bean id = "jedisPoolConfig" class = "redis.clients.jedis.JedisPoolConfig" > < property name = "maxIdle" value = "${redis.maxIdle}" /> < property name = "maxTotal" value = "${redis.maxTotal}" /> < property name = "blockWhenExhausted" value = "true" /> < property name = "maxWaitMillis" value = "${redis.maxWaitMillis}" /> < property name = "testOnBorrow" value = "${redis.testOnBorrow}" /> </ bean > < bean id = "jedisConnectionFactory" class = "org.springframework.data.redis.connection.jedis.JedisConnectionFactory" > < property name = "hostName" value = "${redis.hostname}" /> < property name = "port" value = "${redis.port}" /> < property name = "poolConfig" ref = "jedisPoolConfig" /> < property name = "usePool" value = "true" /> </ bean > < bean id = "redisTemplate" class = "org.springframework.data.redis.core.RedisTemplate" > < property name = "connectionFactory" ref = "jedisConnectionFactory" /> < property name = "keySerializer" > < bean class = "org.springframework.data.redis.serializer.StringRedisSerializer" /> </ property > < property name = "valueSerializer" > < bean class = "org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" /> </ property > < property name = "hashKeySerializer" > < bean class = "org.springframework.data.redis.serializer.StringRedisSerializer" /> </ property > < property name = "hashValueSerializer" > < bean class = "org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" /> </ property > </ bean > </ beans > |
上文中使用到的配置文件 redis-config.properteis
1 2 3 4 5 6 | redis.maxIdle=1 redis.maxTotal=5 redis.maxWaitMillis=30000 redis.testOnBorrow=true redis.hostname=127.0.0.1 redis.port=6379 |
4.redis 有4个关键的接口如下
private ValueOperations<K, V> valueOps;
private ListOperations<K, V> listOps;
private SetOperations<K, V> setOps;
private ZSetOperations<K, V> zSetOps;
分别对应redis的数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
具体使用如下,上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | //添加字符串 ValueOperations<String, String> value = this .redisTemplate.opsForValue(); value.set( "hello" , "讨厌" ); System.out.println(value.get( "hello" )); //添加 一个 hash集合 HashOperations<String, Object, Object> hash =redisTemplate.opsForHash(); hash.put( "沃尔玛" , "水果" , "苹果" ); hash.put( "沃尔玛" , "饮料" , "红牛" ); System.out.println(hash.entries( "沃尔玛" )); //添加一个list 集合 ListOperations<String, Object> list = redisTemplate.opsForList(); list.rightPush( "课程" , "chinese" ); list.rightPush( "课程" , "englise" ); System.out.println(list.range( "lpList" , 0 , 1 )); //添加 一个 set 集合 SetOperations<String, Object> set = redisTemplate.opsForSet(); set.add( "lpSet" , "lp" ); set.add( "lpSet" , "26" ); set.add( "lpSet" , "178cm" ); //输出 set 集合 System.out.println(set.members( "lpSet" )); //添加有序的 set 集合 ZSetOperations<String, Object> zset = redisTemplate.opsForZSet(); zset.add( "lpZset" , "lp" , 0 ); zset.add( "lpZset" , "26" , 2 ); zset.add( "lpZset" , "178cm" , 1 ); //输出有序 set 集合 System.out.println(zset.rangeByScore( "lpZset" , 0 , 2 )); |
本文转自布拉君君 51CTO博客,原文链接:http://blog.51cto.com/5148737/1976501,如需转载请自行联系原作者