Redis(RedisTemplate)使用hash哈希

本文详细介绍了如何使用RedisTemplate进行Hash操作,包括设置、获取、检查、增量操作等,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis(RedisTemplate)使用hash哈希

RedisTemplate配置:https://www.cnblogs.com/weibanggang/p/10188682.html

package com.wbg.springRedis.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.redis.core.RedisTemplate;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TestHash {
    static RedisTemplate redisTemplate = null;

    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-redis.xml");
        redisTemplate = applicationContext.getBean(RedisTemplate.class);
        String key = "hash";
        Map<String, String> map = new HashMap<>();
        map.put("filed1", "value1");
        map.put("filed2", "value2");
        //相当于hmset
        redisTemplate.opsForHash().putAll(key, map);
        //相当于hset
        redisTemplate.opsForHash().put(key, "filed3", "10");
        //相当于hexists key filed //是否存在
        boolean bool = redisTemplate.opsForHash().hasKey(key, "filed3");
        System.out.println(bool);
        //相当于hgetall {filed1=value1, filed2=value2, filed3=10}获取所有hash的键=值
        Map map1 = redisTemplate.opsForHash().entries(key);
        System.out.println(map1);
        //hincrby //加5  如果是原数据是float类型会异常
        redisTemplate.opsForHash().increment(key, "filed3", 5);
        pring("filed3");
        //hincrbyfloat 2.3
        redisTemplate.opsForHash().increment(key, "filed3", 2.2);
        pring("filed3");
        //hvals [value1, value2, 17.199999999999999] 获取所有的value
        System.out.println(redisTemplate.opsForHash().values(key));
        //hkeys [filed1, filed2, filed3] //获取所有的键
        System.out.println(redisTemplate.opsForHash().keys(key));
        List<String> list = new ArrayList<>();
        list.add("filed1");
        list.add("filed2");
        //hmget  [value1, value2] // 获取对于的键  值 没有就返回空
        System.out.println(redisTemplate.opsForHash().multiGet(key, list));
        //hsetnx 不存在的时候才会设置进入true   否则返回false
        System.out.println(redisTemplate.opsForHash().putIfAbsent(key,"filed4", "value4"));
        //hdel 返回删除个数
        System.out.println(redisTemplate.opsForHash().delete(key,"filed1","filed2","filed6"));

    }

    public static void pring(String filed) {
        System.out.println(redisTemplate.opsForHash().get("hash", filed));
    }
}

 

posted @ 2018-12-28 11:09 韦邦杠 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值