美文网首页
redis基本用法

redis基本用法

作者: snail_knight | 来源:发表于2017-08-01 23:27 被阅读0次

来源:http://doc.redisfans.com/
redis内置5种数据结构,spring-data-redis 分别提供了针对5种不同数据结构进行操作的操作类,以下为相应类型的操作方式示例。
1)string类型(key:value)
BoundValueOperations<String, Object> operation = redisTemplate.boundValueOps(key);
operation.set(value); //将值 value 关联到 key 。
operation.set(value, 1000l, TimeUnit.MILLISECONDS); //将值 value 关联到 key,并设置key的过期时间为1000毫秒
operation.get(); //返回 key 所关联的值value。
2)Hash类型(key field:value),key理解为hash表的名字
BoundHashOperations<String, String, Object> operation = redisTemplate.boundHashOps(key);
operation.put(field, value); //将哈希表 key 中的域 field 的值设为 value
operation.get(field) //返回哈希表 key 中给定域 field 的值。
3)List 类型(key 理解为list的名字)
BoundListOperations<String, Object> operation=redisTemplate.boundListOps(key);
operation.leftPush(value) //将值 value 插入到列表 key 的表头
operation.rightPop() //移除并返回列表 key 的尾元素。
List<Object> list=operation.range(0, -1); //返回列表 key 中指定区间内的元素

4)Set 类型(key理解为集合的名字)
BoundSetOperations<String, Object> operation=redisTemplate.boundSetOps(key);
operation.add(Object...values); //将一个或多个元素加入到集合 key 当中
Set<Object> set=operation.members(); //返回集合中的所有成员
operation.remove(Object...values); //移除集合中一个或多个元素

5)ZSet 类型(有序集合)
BoundZSetOperations<String, Object> operation=redisTemplate.boundZSetOps(key);
operation.add(value, score); //将value元素及其对应的score 值加入到有序集 key 当中。
operation.incrementScore(value, delta); // 为有序集 key的成员 value 的 score 值加上增量 increment 。
operation.range(0, -1); // 返回有序集 key 中,指定区间内的成员,其中成员的位置按 score 值递增(从小到大)来排序。

其他对key的操作示例:
redisTemplate.hasKey(key) //判断key是否存在
redisTemplate.delete(key) //删除指定的key

spring-data-redis 本身提供了不同的序列化方式可供配置,包含Jdk序列化,Jackson等。
为方便排查问题,key 和hashKey的序列化方式统一规范为StringRedisSerializer
示例1:(key和hashkey采用StringRedisSerializer进行序列化,value和hashValue采用jdk序列化)
<bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer" />
<bean id="jdkSerializationRedisSerializer" class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory"/>
<property name="keySerializer" ref="stringRedisSerializer"/>
<property name="hashKeySerializer" ref="stringRedisSerializer"/>
<property name="valueSerializer" ref="jdkSerializationRedisSerializer"/>
<property name="hashValueSerializer" ref="jdkSerializationRedisSerializer"/>
</bean>

考虑到jdk序列化方式性能低下问题,在spring-data-redis原有的序列化支持基础上扩展出FastJson 和Kryo序列化两种方式,可根据需要自行选择。推荐使用Kryo

使用:1.引入jar包
<dependency>
<groupId>com.weidai.redis</groupId>
<artifactId>redis</artifactId>
<version>1.0</version>
</dependency>

2.使用Kryo进行序列化配置示例:

<bean id="kryoSerializer" class="com.weidai.redis.serialize.KryoSerializer" />
<bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer" />
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory"/>
<property name="keySerializer" ref="stringRedisSerializer"/>
<property name="hashKeySerializer" ref="stringRedisSerializer"/>
<property name="valueSerializer" ref="kryoSerializer"/>
<property name="hashValueSerializer" ref="kryoSerializer"/>
</bean>

使用FastJson进行序列化配置示例:

<bean id="fastJsonSerializer" class="com.weidai.redis.serialize.FastJsonSerializer" />
<bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer" />
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory"/>
<property name="keySerializer" ref="stringRedisSerializer"/>
<property name="hashKeySerializer" ref="stringRedisSerializer"/>
<property name="valueSerializer" ref="fastJsonSerializer"/>
<property name="hashValueSerializer" ref="fastJsonSerializer"/>
</bean>

相关文章

  • redis基本用法

    来源:http://doc.redisfans.com/redis内置5种数据结构,spring-data-red...

  • Flink Redis Sink 基本用法

    简介 flink提供了专门操作redis的Redis Sink 依赖 类 Redis Sink 提供用于向Redi...

  • Redis用法

    //原生用法//$redis=new\Redis();//$redis->connect(Config("REDI...

  • redis安装及基本语法

    Redis Redis 用法参考--菜鸟教程:http://www.runoob.com/redis/redis-...

  • Redis在项目上的常用操作【二】

    Redis的高级用法 redis集群 redis 主从复制 概念:持久化保证了即使redis服务重启也不会丢失数据...

  • Redis

    Redis 高级用法 本文旨在介绍一些 Redis 的高级用法。中央缓存结合本地缓存 - 本地缓存数据刷新方案 互...

  • redis基本数据结构用法

    其实redis节本数据结构的使用方法官网上都写的很清楚了,所以这里不手写了,直接上一些截图。 SET元素可以用来做...

  • Redis在Python中的基本用法

    概述 Redis是一种键值数据库,属于非关系型数据库的一种,具有极高的读写性能,适合用于处理大量数据的高访问负载。...

  • 跟我一起学NodeJs之使用redis做登录验证

    Redis 为了更安全完美的做登录验证,我们引入录入redis,当然,存session只是redis用法之一。 安...

  • redis基础知识

    redis安装 redis基本配置文件 基本配置 在源文件/usr/local/redis目录下,文件redis....

网友评论

      本文标题:redis基本用法

      本文链接:https://www.haomeiwen.com/subject/mkgslxtx.html