php redis 删除元素,redisTemplate.delete()不能删除元素
最近在学习redis,使用spring-data-redis的RedisTemplate.delete()方法删除时,添加是成功的,但是不能删除。
代码如下
public abstract class AbstractBaseRedisDao {
@Autowired
protected RedisTemplate redisTemplate;
// public void setRedisTemplate(RedisTemplate redisTemplate) {
// this.redisTemplate = redisTemplate;
// }
public RedisSerializer getRedisSerializer() {
return redisTemplate.getStringSerializer();
}
}
public interface IUserDao {
boolean add(User user);
void delete(String key);
void delete(List keys);
User get(String keyId);
}
@Service
public class UserDao extends AbstractBaseRedisDao implements IUserDao {
public boolean add(final User user) {
boolean result = redisTemplate.execute(new RedisCallback() {
public Boolean doInRedis(RedisConnection redisConnection) throws DataAccessException {
RedisSerializer serializer = getRedisSerializer();
byte[] key = serializer.serialize(user.getId());
byte[] name = serializer.serialize(user.getName());
return redisConnection.setNX(key, name);
}
});
return result;
}
public void delete(String key) {
List list = new ArrayList();
list.add(key);
delete(list);
}
public void delete(List keys) {
redisTemplate.delete(keys);
}
public User get(final String keyId) {
User result = redisTemplate.execute(new RedisCallback() {
public User doInRedis(RedisConnection redisConnection) throws DataAccessException {
RedisSerializer serializer = getRedisSerializer();
byte[] key = serializer.serialize(keyId);
byte[] value = redisConnection.get(key);
if (value == null) {
return null;
}
String name = serializer.deserialize(value);
return new User(keyId, name, null);
}
});
return result;
}
}
配置如下:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
p:hostName="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}" p:poolConfig-ref="poolConfig" />
测试用例:
public class RedisTest {
private IUserDao userDao;
@Before
public void init() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("case1/applicationContext.xml");
userDao = (IUserDao) ctx.getBean("userDao");
}
@Test
public void testAddUser() {
User user = new User();
user.setId("B");
user.setName("B");
boolean result = userDao.add(user);
Assert.assertTrue(result);
}
@Test
public void testDelete() {
String key = "B";
User user = userDao.get(key);
System.out.println("删除前:" + user);
userDao.delete(key);
user = userDao.get(key);
System.out.println("删除后:" + user);
}
}
php redis 删除元素,redisTemplate.delete()不能删除元素相关推荐
- 关于java文件删除file.delete()无法删除文件的处理办法
1.问题: file.delete()无法删除文件file.delete()无法删除文件,无论执行多少次结果都为false: 2.分析原因: 1).有可能有流对该文件进行操作,或者是流操作完没有进行关 ...
- java delete file 失败_file.delete()无法删除文件的原因及解决方法
file.delete()无法删除文件的原因及解决方法 发布时间:2020-05-06 09:41:00 来源:亿速云 阅读:756 作者:小新 今天小编给大家分享的是file.delete()无法删 ...
- SSM使用RedisTemplate按照索引删除list中的元素
RedisTemplate按照索引删除list中的元素的一种方法 准备数据 取出整个list 核心思想:取出redis中list的所有元素,用java的list相关方法删除元素,得到一个新的list, ...
- C语言 - 删除数组中的指定元素(Delete)
目录 引言: 题目说明: 举例分析: 初始状态: step 1: Step 2: Step 3 : Step 4 : 将最后一个元素赋值为0 Step 5 :将i下标向前迁移一位(重复判断): 代码 ...
- php redis hash删除key,如何优雅的删除Redis的大key
关于Redis大键(Key),我们从[空间复杂性]和访问它的[时间复杂度]两个方面来定义大键.前者主要表示Redis键的占用内存大小:后者表示Redis集合数据类型(set/hash/list/sor ...
- B10_NumPy数组操作、修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除
NumPy数组操作 Numpy 中包含了一些函数用于处理数组,大概可分为以下几类: 修改数组形状 翻转数组 修改数组维度 连接数组 分割数组 数组元素的添加与删除 修改数组形状 函数 描述 resha ...
- 单链表删除所有值为x的元素_线性表之单链表
单链表 一种以链接方式存储的线性表,适用于频繁增删操作,存储空间不定的情形. 单链表的一个存储结点包含两个域,数据域和指针域.数据域用于存储线性表的一个数据元素,指针域用于指示下一个结点开始的存储地址 ...
- 哈希表中能有相同元素吗_最小删除以使用哈希表使所有元素相同
哈希表中能有相同元素吗 Prerequisite: Hashing data structure 先决条件: 哈希数据结构 Problem statement: 问题陈述: Find minimum ...
- [vue] 删除数组用delete和Vue.delete有什么区别?
[vue] 删除数组用delete和Vue.delete有什么区别? delete:只是被删除数组成员变为 empty / undefined,其他元素键值不变Vue.delete:直接删了数组成员, ...
最新文章
- 2019成考计算机几时出成绩,2019年成人高考成绩什么时候出来?如何查询
- VMware助青年时报构建安全高效应用平台
- python 如何封装dll_如何为DLL库创建Python包装器
- 微信8.0全心全意考虑用户需求为企业开展网络营销带来全新思考
- web页面 float定位导致“溢出现象”处理
- 通用Login功能自动化测试
- C语言再学习 -- 存储类、链接
- android中的线程池学习笔记
- leetcode-345-翻转字符串中的元音字母
- pku2503 Babelfish
- 在vivado里用rtl描述_如何利用Vivado HLS处理许多位准确或任意精度数据类型
- 【Python】解决No name 'QWidget' in module 'PyQt5.QtWidgets'
- 只用6张图教会AI识别物体,达摩院新方案大幅降低AI数据标注成本
- android任意函数绘制_图片和图形 | 可绘制对象概览
- selenium1、selenium2 示例代码(java版)
- Linux安装pyaudio
- PHP将swf转为gif,swf转gif 在线转换
- SketchUp 2019 组件库的正确应用
- android命令行启动,Android中使用am命令实现在命令行启动程序详解
- 第一届广西英招杯部分WP
热门文章
- python多维数据划分_【python+机器学习(4)】多维数据的特征选取(RidgeLasso)...
- uniapp网络请求获取数据_2.uni-app 发起网络请求
- android 锁屏 home,android 锁屏界面禁用长按home 和menu(recent apps)
- python字符串解析_Python-字符串解析-正则-re
- 微信小程序+TP5——token令牌生成
- 【51单片机快速入门指南】2.2:任意位/任意长度数码管显示数字、小数
- 让事件飞——Linux eventfd 原理
- Mac OS 如何更改文件的默认打开方式
- _attribute_((packed))
- python 数据库模块