package com.jshop.redis.dao.impl; import java.io.Serializable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Repository; import com.jshop.entity.MemberT; import com.jshop.redis.dao.RedisMemberDao; @Repository("redisUserDao") public class RedisMemberDaoImpl implements RedisMemberDao { @Autowired private RedisTemplate<Serializable, Serializable> redisTemplate; @Override public void save(final MemberT memberT) { redisTemplate.execute(new RedisCallback<Object>() { @Override public Object doInRedis(RedisConnection connection) throws DataAccessException { connection.set( redisTemplate.getStringSerializer().serialize( "MemberT.id." + memberT.getId()), redisTemplate.getStringSerializer().serialize( memberT.getNick())); return null; } }); } @Override public MemberT read(final String id) { return redisTemplate.execute(new RedisCallback<MemberT>() { @Override public MemberT doInRedis(RedisConnection connection) throws DataAccessException { byte[] key = redisTemplate.getStringSerializer().serialize( "MemberT.id." + id); if (connection.exists(key)) { byte[] value = connection.get(key); String nick = redisTemplate.getStringSerializer() .deserialize(value); MemberT memberT = new MemberT(); memberT.setNick(nick); memberT.setId(id); return memberT; } return null; } }); } @Override public void delete(final String id) { redisTemplate.execute(new RedisCallback<Object>() { public Object doInRedis(RedisConnection connection) { connection.del(redisTemplate.getStringSerializer().serialize( "MemberT.uid." + id)); return null; } }); } }