SDR中通过支持Repository,操作对于model在缓存中的增删改查,非常方便。
1.Repository
spring-data中对于数据库的增删改查的中央存储库。通过它可以对数据库(redis)进行操作。基本的实现为CrudRepository。
2.EnableRedisRepositories
要通过CrudRepository必须先开启支持Repository。EnableRedisRepositories是一个注解,通过注解它可以开启。其中有些比较重要的属性:
/**
* 指定扫描的包与子包下面的Repositories
*/
String[] basePackages() default {};
/**
* 指定Repositories的类
*/
Class<?>[] basePackageClasses() default {};
/**
* 实现类的结尾 默认为Impl
*/
String repositoryImplementationPostfix() default "Impl";
/**
* 查询方法策略
* CREATE 按照接口名称自动构建查询
* USE_DECLARED_QUERY 按照用户声明的查询
* CREATE_IF_NOT_FOUND 先搜索用户声明的,
* 不存在则自动构建
*
*/
Key queryLookupStrategy() default Key.CREATE_IF_NOT_FOUND;
/**
*指定Repository的工厂类
*/
Class<?> repositoryFactoryBeanClass() default RedisRepositoryFactoryBean.class;
/**
* 指定Repository的基本
*
* @return
*/
Class<?> repositoryBaseClass() default DefaultRepositoryBaseClass.class;
/**
* 指定KeyValueTemplate的引用,默认为
* redisKeyValueTemplate
*
*
* @return
*/
String keyValueTemplateRef() default "redisKeyValueTemplate";
/**
*redisTemplate的引用 默认为
*redisTemplate
*/
String redisTemplateRef() default "redisTemplate";
3.配置一个类如:
@Component
@EnableRedisRepositories(redisTemplateRef ="jedisTemplate", basePackages = {"com.pdz"}
,keyValueTemplateRef = "jedisKeyValueTemplate")
public class RedisConfig {
}
4.注解需要缓存的实体,添加关键的两个注解@RedisHash @Id SDR通过这两个注解生成key,如果id的值为 pdz,注解的RedisHash值为user,那么key就为user:pdz
@RedisHash("user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@org.springframework.data.annotation.Id
@Column(name = "userId")
private String id;
private String name;
private Integer age;
private Timestamp birthday;
private String bankCard;
//省略set get方法
5.编写UserRepository接口继承CrudRepository
public interface UserRepository extends CrudRepository<User, String> {
}
6.编写测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:applicationContext.xml","classpath:spring-servlet.xml"})
public class JRedisTest extends TestRoot {
@Autowired
private UserRepository userRepository;
@Test
public void testRepository() {
User user = new User();
user.setAge(19);
user.setName("aa");
userRepository.save(user);
}
}
测试前redis查看结果:
运行测试成功后查看redis:
redis中已经存在刚才插入的user.
这样就可以通过简单的Repository对Redis进行增删改查。