redis for hash操作简单总结


概述:

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配置

 "jedisConnectionFactory"
        class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        "hostName" value="${redis.hostname}">
        "port" value="${redis.port}">
        "password" value="${redis.password}">
    

    
    "redisTemplate"
        class="org.springframework.data.redis.core.RedisTemplate"
        p:connection-factory-ref="jedisConnectionFactory" >
        "valueSerializer">
            "org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
        
        
        "keySerializer">  
            "org.springframework.data.redis.serializer.StringRedisSerializer" />  
         
        

    
    "cacheManager"
        class="org.springframework.data.redis.cache.RedisCacheManager">
        "redisOperations" ref="redisTemplate" /> 
   

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

public  HashOperations opsForHash() {
        return new DefaultHashOperations(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的其他知识并没有涉及到,作者也会不断研究,不断总结

你可能感兴趣的:(Java,数据库,redis)