app开发者平台在数字化时代的重要性与发展趋势解析
590
2022-10-17
SpringBoot2.x 操作 Redis 数据
SpringBoot 操作 Redis 数据
简介
Redis 是一个开源的NoSQL数据库,基于内存的键值存储,速度快。 Redis 支持数据结构,如字符串,散列,列表,集和带范围查询的有序集。
5种主要数据类型:
字符串类型 string 散列类型 hash 列表类型 list 集合类型 set 有序集合类型 zset
Redis优缺点
直接基于内存读写,不用Redis直接用MySQL,先不说查询性能耗时,一个是直达一个是通过媒介,显而易见,Redis 速度很快 。不过Redis ,仅适用于键值对,并不能替代MySQL,虽然其有持久化,但是也可能会崩溃,损失几秒的数据
项目环境
项目工具环境:
IDE工具,这里是 Jetbrains IDEA Maven 3.5 + JDK1.8 Redis 服务器
源码环境地址
后面的基于这个项目来操作
定义 RedisTemplate
RedisConfig.java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericToStringSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
@Bean
JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setPassword("ekko1234");
return jedisConnectionFactory;
}
@Bean
public RedisTemplate
操作 Redis 初体验
import lombok.extern.slf4j.Slf4j;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
//根据测试方法名字搞定执行顺序
@Slf4j
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class TestRedis {
private RedisTemplate
操作字符串
在测试类中操作字符串:
@Test public void operateStr(){ // 存入 key为username value 为 admin redisTemplate.opsForValue().set("username","admin"); // 获取 key为username String username = (String) redisTemplate.opsForValue().get("username"); System.out.println(username); }
操作集合
opsForList()
@Test
public void operateList() {
List
输出:
删除前:userlist->[李四, 张三, 麻子] 删除后:userlist->[李四, 张三]
操作不可重复集合
opsForSet()
@Test
public void operateSet(){
List
输出:
删除前:userSet->[工具人, 工具人, 工具人, 四块五的妞, 十元妹子] 删除后:userSet->[四块五的妞, 十元妹子]
哈希操作
opsForHash() 相当于在操作实体类
@Test public void operateHash(){ //添加 redisTemplate.opsForHash().put("user","username","ekko"); redisTemplate.opsForHash().put("user","address","Shanghai"); redisTemplate.opsForHash().put("user","passwd","1234"); //修改 redisTemplate.opsForHash().put("user","address","Beijing"); //删除 redisTemplate.opsForHash().delete("user","passwd"); }
总结
数据量大且不长变的还是用缓存 接收数据来回操作使用 Redis,持久化时再入库 做好缓存击穿的准备 利用好 Redis 可以很大程度的减少 MySQL 的压力 Redis 常用的操作基本满足需求
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~