redis实现 spring-redis-data初学习二 进阶,存取对象

来源:互联网 发布:java写界面的工具 编辑:程序博客网 时间:2024/05/27 14:14

配置文件如  redis实现 spring-redis-data 初学习中已经介绍过来,下面主要给大家分享如何存取对象

UserInfoDO

public class UserInfoDO {    private String userId;    private String name;    private String sex;    public String getUserId() {        return userId;    }    public void setUserId(String userId) {        this.userId = userId;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }}
操作对象存取类

UserRedisClient 

public class UserRedisClient extends RedisBase {    public static String PREFIX_USER = "user:";    public void save(final UserInfoDO user) {        final StringRedisTemplate redisTemplate = getTemplate();        redisTemplate.execute(new RedisCallback<UserInfoDO>() {            public UserInfoDO doInRedis(RedisConnection connection) throws DataAccessException {                String key = PREFIX_USER + user.getUserId();                BoundHashOperations<String, String, String> boundHashOperations = redisTemplate.boundHashOps(key);                Map<String, String> data = new HashMap<String, String>();                data.put("name", user.getName());                data.put("sex", user.getSex());                boundHashOperations.putAll(data);                return null;            }        });    }    public UserInfoDO getUserDoById(final String userId) {        StringRedisTemplate redisTemplate = getTemplate();        return redisTemplate.execute(new RedisCallback<UserInfoDO>() {            public UserInfoDO doInRedis(RedisConnection connection) throws DataAccessException {                String key = PREFIX_USER + userId;                BoundHashOperations<String, String, String> boundHashOperations = getTemplate().boundHashOps(key);                Map<String, String> data = boundHashOperations.entries();                if (data != null) {                    UserInfoDO user = new UserInfoDO();                    user.setUserId(userId);                    user.setName(data.get("name"));                    user.setSex(data.get("sex"));                    return user;                } else {                    return null;                }            }        });    }}
我参考了其他人的一些博客上在存和取的过程中将各个字段序列化后存和取,不知道两者之间的区别和优劣,希望大家借鉴,另外我参考的一篇文章中的写法我也贴出来,大家仅供参考,也希望多多提提意见,一起学习。

存入对象:


获取对象: