RedisDaoImpl.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package cn.com.lzt.common.dao;
  2. import java.io.Serializable;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.dao.DataAccessException;
  5. import org.springframework.data.redis.connection.RedisConnection;
  6. import org.springframework.data.redis.core.RedisCallback;
  7. import org.springframework.data.redis.core.RedisTemplate;
  8. import org.springframework.stereotype.Repository;
  9. import cn.com.lzt.common.util.SerializeUtil;
  10. @Repository
  11. public class RedisDaoImpl implements RedisDao {
  12. @Autowired
  13. protected RedisTemplate<Serializable, Serializable> redisTemplate;
  14. @Override
  15. public String testRedis() {
  16. return redisTemplate.execute(new RedisCallback<String>() {
  17. public String doInRedis(RedisConnection connection)
  18. throws DataAccessException {
  19. byte[] key = redisTemplate.getStringSerializer().serialize(
  20. "testsw");
  21. if (connection.exists(key)) {
  22. byte[] value = connection.get(key);
  23. String str = redisTemplate.getStringSerializer()
  24. .deserialize(value);
  25. return str;
  26. } else {
  27. return "没有从Redis获取相关信息";
  28. }
  29. }
  30. });
  31. }
  32. @Override
  33. public void save(final String key, Object value) {
  34. final byte[] vbytes = SerializeUtil.serialize(value);
  35. redisTemplate.execute(new RedisCallback<Object>() {
  36. @Override
  37. public Object doInRedis(RedisConnection connection)
  38. throws DataAccessException {
  39. connection.set(redisTemplate.getStringSerializer().serialize(key), vbytes);
  40. return null;
  41. }
  42. });
  43. }
  44. @Override
  45. public <T> T get(final String key,Class<T> elementType) {
  46. return redisTemplate.execute(new RedisCallback<T>() {
  47. @Override
  48. public T doInRedis(RedisConnection connection)
  49. throws DataAccessException {
  50. byte[] keybytes = redisTemplate.getStringSerializer().serialize(key);
  51. if (connection.exists(keybytes)) {
  52. byte[] valuebytes = connection.get(keybytes);
  53. @SuppressWarnings("unchecked")
  54. T value = (T) SerializeUtil.unserialize(valuebytes);
  55. return value;
  56. }
  57. return null;
  58. }
  59. });
  60. }
  61. @Override
  62. public void delete(String key) {
  63. redisTemplate.delete(key);
  64. }
  65. @Override
  66. public String getString(final String keyValue) {
  67. return redisTemplate.execute(new RedisCallback<String>() {
  68. public String doInRedis(RedisConnection connection)
  69. throws DataAccessException {
  70. byte[] key = redisTemplate.getStringSerializer().serialize(
  71. keyValue);
  72. if (connection.exists(key)) {
  73. byte[] value = connection.get(key);
  74. String str = redisTemplate.getStringSerializer()
  75. .deserialize(value);
  76. return str;
  77. } else {
  78. return null;
  79. }
  80. }
  81. });
  82. }
  83. @Override
  84. public void setString(final String key,final String value) {
  85. redisTemplate.execute(new RedisCallback<String>() {
  86. @Override
  87. public String doInRedis(RedisConnection connection)
  88. throws DataAccessException {
  89. connection.set(key.getBytes(), value.getBytes());
  90. return null;
  91. }
  92. });
  93. }
  94. }