依赖
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.1.0</version> </dependency> // 创建一个 Jedis 的连接 Jedis jedis = new Jedis(“127.0.0.1”, 6379); // 密码认证 如果设置了密码,就需要进行认证 jedis.auth(“offcn123”); // 执行 redis 命令 jedis.set(“mytest”, “hello world, this is jedis client!”);依赖
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>2.2.0.RELEASE</version> </dependency> @ComponentScan(basePackages = "demos") @Configuration public class Application{ @Bean public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){ RedisTemplate template=new RedisTemplate(); template.setConnectionFactory(redisConnectionFactory); template.setDefaultSerializer(new StringRedisSerializer()); return template; } @Bean public RedisConnectionFactory redisConnectionFactory(){ RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration(); JedisConnectionFactory factory=new JedisConnectionFactory(configuration); return factory; } public static void main(String args[]){ ApplicationContext context = new AnnotationConfigApplicationContext(Application.class); RedisTemplate redis = context.getBean(RedisTemplate.class); redis.opsForValue().set("11", "222"); System.out.println( bean.opsForValue().get("11"));; } }Redis序列化
1、当我们使用RedisTemplte对数据进行操作的时候它会采用序列化的方式将我们的数据存入redis
2、RedisTemplte默认使用序列化方式是我们的JDK序列化
3、区别:
JdkSerializationRedisSerializer序列化后长度最小,Jackson2JsonRedisSerializer效率最高。
如果综合考虑效率和可读性,牺牲部分空间,推荐key使用StringRedisSerializer,保持的key简明易读;value可以使用Jackson2JsonRedisSerializer
如果空间比较敏感,效率要求不高,推荐key使用StringRedisSerializer,保持的key简明易读;value可以使用JdkSerializationRedisSerializer
总结:
1、Redis支持的序列化方式
JdkSerializationRedisSerializer:默认值Jackson2JsonRedisSerializerStringRedisSerializer :推荐依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>配置application.yml
spring: redis: host: localhost port: 6379注入spring容器
@SpringBootApplication @EnableScheduling public class ReptilesCoreApplication { public static void main(String[] args) { SpringApplication.run(ReptilesCoreApplication.class, args); } @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } @Bean public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory factory){ StringRedisTemplate template = new StringRedisTemplate(); template.setConnectionFactory(factory); return template; } }使用
@Autowired public StringRedisTemplate redisTemplate; //将数据放入redis中 ValueOperations<String, String> forValue = redisTemplate.opsForValue(); forValue.set(key,value); //将id放入当做唯一标识,识别是否存储 SetOperations<String, String> forSet = redisTemplate.opsForSet(); forSet.add(RedisKeyEnum.IDS.getKey(),article.getId());使用redisTemplate对象对Redis进行操作。