zoukankan      html  css  js  c++  java
  • 213-RedisTemplate如何实现操作Redis?

    1.如何实现Redis数据库的序列化?
      private StringRedisSerializer stringRedisSerializer=new StringRedisSerializer();
      redisTemplate.setKeySerializer(stringRedisSerializer);
           redisTemplate.setValueSerializer(stringRedisSerializer
    );

    2.如何增删改查数据库?、

      2.1根据key获取value:redisTemplate.opsForValue().get(Constants.GOODS_STORE+randomName);

      2.2.根据键自增value:redisTemplate.opsForValue().increment(Constants.CURRENT_LIMITING);

      2.3.根据键自减value:redisTemplate.opsForValue().decrement(Constants.CURRENT_LIMITING);

      2.4.添加value:redisOperations.opsForValue().set(Constants.PURCHASE_LIMITS+randomName+uid,"1");
      2.5.根据键删除数据:redisTemplate.delete(key1);

    3.事务操作

      3.1:开始事务:redisTeleplate.multi();

      3.2:关闭事务:redisTeleplate.exec();但是这样操作会报错,主要原因是提交事务的对象不一样。

      3.3:开始事务:

     Object result= redisTemplate.execute(new SessionCallback() {
                public Object execute(RedisOperations redisOperations) throws DataAccessException {
                    //定义需要被监控的key的集合
                    List<String> list=new ArrayList<String>();
                    redisOperations.watch(list);//开启监听
                    redisOperations.multi();//开启事务
                    redisOperations.opsForValue().decrement(Constants.GOODS_STORE+randomName);
                    redisOperations.opsForValue().set(Constants.PURCHASE_LIMITS+randomName+uid,"1");
                    return redisOperations.exec();//提交事务,返回值是一个List集合,如果有长度,则代表事务提交成功。
                }
    });
  • 相关阅读:
    mysql8.0.20安装
    MySQL EXPLAIN结果集分析
    初次安装aliSql
    升级vim到8.0
    REPL环境对语言的帮助
    Python环境搭建及pip的使用
    mysql数据库分库分表(Sharding)
    Git的使用
    Promise的初步认识
    对引用的文件起别名
  • 原文地址:https://www.cnblogs.com/pogusanqian/p/13037494.html
Copyright © 2011-2022 走看看