redis for hash操作简单总结

来源:互联网 发布:微博关键词优化 编辑:程序博客网 时间:2024/06/08 05:24

概述:

Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系。但是,除了常规的数值或字符串,Redis的键值还可以是以下形式之一:
  ●Lists (列表)
  ●Sets (集合)
  ●Sorted sets (有序集合)
  ●Hashes (哈希表)
  
因为在最近的项目中用到的是Hashes,所以这里重点总结一下redis的hash操作。


  1. 命令简介
    redis for hash操作命令参考


    这里我们主要用到了HGET,HGETALL,HKEYS,HSET,HINCRBY。
    HEGT key filed 返回哈希表key中给定域filed的值
    ex:HGET counter:postViewNum 2:1 返回值20
    HGETALL key
    返回哈希表 key 中,所有的域和值。
    HKEYS key
    返回哈希表 key 中的所有域。
    HSET key field value
    将哈希表 key 中的域 field 的值设为 value 。
    HINCRBY key field increment
    为哈希表 key 中的域 field 的值加上增量 increment 。

  2. redis for java api
    因为我们的后台开发语言是java,所以我们需要使用redis提供的java api。
    而我们的后台框架使用的是springMVC所以又用到了spring-data-redis
    核心的spring-redis配置

 <bean        id="jedisConnectionFactory"        class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">        <property name="hostName" value="${redis.hostname}"></property>        <property name="port" value="${redis.port}"></property>        <property name="password" value="${redis.password}"></property>    </bean>    <!-- redis template definition -->    <bean        id="redisTemplate"        class="org.springframework.data.redis.core.RedisTemplate"        p:connection-factory-ref="jedisConnectionFactory" >        <property name="valueSerializer">            <bean class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />        </property>        <!-- 1.注意这里 -->        <property name="keySerializer">              <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />          </property>         </bean>    <!-- declare Redis Cache Manager -->    <bean        id="cacheManager"        class="org.springframework.data.redis.cache.RedisCacheManager">        <constructor-arg name="redisOperations" ref="redisTemplate" />    </bean>

使用redis哈希操作需要实例化Redistemplate,通过redistemplate.opsForHash()得到HashOperations

public <HK, HV> HashOperations<K, HK, HV> opsForHash() {        return new DefaultHashOperations<K, HK, HV>(this);    }

在这里我们用到的HashOperations接口中的三个方法:

Long increment(H key, HK hashKey, long delta);
为指定key中的field值加上增量delta,相当于hash命令HINCRBY
void put(H key, HK hashKey, HV value);
为指定key中的filed赋值为value,相当于hash命令HSET
Map<> entries(H key);
获取指定key中所有的field,value,相当于hash命令HGETALL

这里只是对于redis使用java语言进行hash操做了一个简单的总结。当然还有很多redis的其他知识并没有涉及到,作者也会不断研究,不断总结

0 0
原创粉丝点击