如何刷网站流量,九牛科技网站开发微信营销,网站在手机上内页图不显示,查询战网文章目录 前言一、 Redis客户端简介1. Redis客户端分类2. Spring 整合 Redis 的两种方式 二、 使用 Jedis 操作 Redis1. Jedis的maven坐标2. 使用Jedis操作Redis的步骤3. Jedis 操作 Redis 示例 三、 使用 Spring Data Redis 操作 Redis1. Spring Data Redis 的 maven 坐标2. s… 文章目录 前言一、 Redis客户端简介1. Redis客户端分类2. Spring 整合 Redis 的两种方式 二、 使用 Jedis 操作 Redis1. Jedis的maven坐标2. 使用Jedis操作Redis的步骤3. Jedis 操作 Redis 示例 三、 使用 Spring Data Redis 操作 Redis1. Spring Data Redis 的 maven 坐标2. spring Data Redis 中 operation 接口的分类3. Spring Data Redis 操作 Redis String 类型示例ValueOperations ---- 简单K-V操作4. Spring Data Redis 操作 Redis hash 类型示例HashOperations ---- 针对map类型的数据操作5. Spring Data Redis 操作 Redis list 类型示例ListOperations ---- 针对list类型的数据操作6. Spring Data Redis 操作 Redis set 类型示例 SetOperations ---- set类型数据操作7. Spring Data Redis 操作 Redis Zset 类型示例ZSetOperations ---- zset类型数据操作8. Spring Data Redis 操作 Redis 通用操作 总结 前言
为了巩固所学的知识作者尝试着开始发布一些学习笔记类的博客方便日后回顾。当然如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚文章中如果有记录错误欢迎读者朋友们批评指正。 博客的参考源码可以在我主页的资源里找到如果在学习的过程中有什么疑问欢迎大家在评论区向我提出
一、 Redis客户端简介
1. Redis客户端分类 Redis的Java 客户端很多官方推荐的有三种 JedisLettuceRedisson 2. Spring 整合 Redis 的两种方式 Spring 对 Redis 客户端进行了整合提供了 Spring Data Redis在spring Boot项目中还提供了对应的Starter即spring-boot-starter-data-redis 二、 使用 Jedis 操作 Redis
1. Jedis的maven坐标
dependency
groupldredis.clients/groupld
artifactldjedis/artifactld
version2.8.0/version
/dependency2. 使用Jedis操作Redis的步骤 获取连接执行操作关闭连接 3. Jedis 操作 Redis 示例
1. 新建maven工程导入相关坐标 dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependencydependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion2.8.0/version/dependency2. 编写测试方法
/*** 使用Jedis操作Redis*/
public class JedisTest {Testpublic void testRedis(){//1 获取连接Jedis jedis new Jedis(localhost,6379);//2 执行具体的操作jedis.set(username,xiaoming);//输出打印String value jedis.get(username);System.out.println(value);//删除操作//jedis.del(username);//哈希存储jedis.hset(myhash,addr,bj);//输出打印String hValue jedis.hget(myhash, addr);System.out.println(hValue);//keys * 输出打印SetString keys jedis.keys(*);for (String key : keys) {System.out.println(key);}//3 关闭连接jedis.close();}
}3. 启动redis服务windows连接客户端测试获取 key username 4. 启动测试类通过后再次获取key username 三、 使用 Spring Data Redis 操作 Redis
1. Spring Data Redis 的 maven 坐标
dependency
groupldorg.springframework.boot/groupld
artifactldspring-boot-starter-data-redis/artifactld
/dependency2. spring Data Redis 中 operation 接口的分类 spring Data Redis中提供了一个高度封装的类RedisTemplate针对iedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口具体分类如下 ValueOperations ---- 简单K-V操作SetOperations ---- set类型数据操作ZSetOperations ---- zset类型数据操作HashOperations ---- 针对map类型的数据操作ListOperations ---- 针对list类型的数据操作 3. Spring Data Redis 操作 Redis String 类型示例ValueOperations ---- 简单K-V操作
1. 新建 SpringBoot 工程导入相关坐标 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency2. yml 配置文件
spring:application:name: springdataredis_demo#Redis相关配置redis:host: localhostport: 6379#password: 123456database: 0 #默认操作的是0号数据库jedis:#Redis连接池配置pool:max-active: 8 #最大连接数max-wait: 1ms #连接池最大阻塞等待时间max-idle: 4 #连接池中的最大空闲连接min-idle: 0 #连接池中的最小空闲连接3. 了解如何修改默认数据库数量16配置 4. 编写测试方法
SpringBootTest
RunWith(SpringRunner.class)
public class SpringDataRedisTest {//yml中配置支持RedisTemplate对象自动装配Autowiredprivate RedisTemplate redisTemplate;/*** 操作String类型数据*/Testpublic void testString(){//ValueOperations valueOperations redisTemplate.opsForValue();redisTemplate.opsForValue().set(city,beijing);}
}5. 运行并访问设置的 key 值 6. 设置配置类配置Redis序列化方式
/*** Redis配置类*/Configuration
public class RedisConfig extends CachingConfigurerSupport {Beanpublic RedisTemplateObject, Object redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplateObject, Object redisTemplate new RedisTemplate();//默认的Key序列化器为JdkSerializationRedisSerializer//String类型序列化器redisTemplate.setKeySerializer(new StringRedisSerializer());//hash类型序列化器redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setConnectionFactory(connectionFactory);return redisTemplate;}}7. 修改添加的 key 为 city123再次运行测试类并访问新设置的 key 8. 其他测试
SpringBootTest
RunWith(SpringRunner.class)
public class SpringDataRedisTest {//yml中配置支持RedisTemplate对象自动装配Autowiredprivate RedisTemplate redisTemplate;/*** 操作String类型数据*/Testpublic void testString(){//ValueOperations valueOperations redisTemplate.opsForValue();redisTemplate.opsForValue().set(city123,beijing);//打印输出String value (String) redisTemplate.opsForValue().get(city123);System.out.println(value);//设置超时时间redisTemplate.opsForValue().set(key1,value1,10l, TimeUnit.SECONDS);//当key不存在才设置valueBoolean aBoolean redisTemplate.opsForValue().setIfAbsent(city1234, nanjing);System.out.println(aBoolean);}
}4. Spring Data Redis 操作 Redis hash 类型示例HashOperations ---- 针对map类型的数据操作
1. 编写相关测试方法
SpringBootTest
RunWith(SpringRunner.class)
public class SpringDataRedisTest {Autowiredprivate RedisTemplate redisTemplate;/*** 操作Hash类型数据*/Testpublic void testHash(){HashOperations hashOperations redisTemplate.opsForHash();//存值hashOperations.put(002,name,xiaoming);hashOperations.put(002,age,20);hashOperations.put(002,address,bj);//取值String age (String) hashOperations.get(002, age);System.out.println(age);//获得hash结构中的所有字段Set keys hashOperations.keys(002);for (Object key : keys) {System.out.println(key);}//获得hash结构中的所有值List values hashOperations.values(002);for (Object value : values) {System.out.println(value);}}
}2. 运行测试类观察结果 5. Spring Data Redis 操作 Redis list 类型示例ListOperations ---- 针对list类型的数据操作
1. 编写测试相关测试方法
SpringBootTest
RunWith(SpringRunner.class)
public class SpringDataRedisTest {Autowiredprivate RedisTemplate redisTemplate;/*** 操作List类型的数据*/Testpublic void testList(){ListOperations listOperations redisTemplate.opsForList();//存1个值listOperations.leftPush(mylist,a);//存多个值listOperations.leftPushAll(mylist,b,c,d);//取值ListString mylist listOperations.range(mylist, 0, -1);for (String value : mylist) {System.out.println(value);}//获得列表长度 llenLong size listOperations.size(mylist);int lSize size.intValue();for (int i 0; i lSize; i) {//出队列String element (String) listOperations.rightPop(mylist);System.out.println(element);}}
}2. 运行测试方法观察结果 6. Spring Data Redis 操作 Redis set 类型示例 SetOperations ---- set类型数据操作
1. 编写相关测试方法
SpringBootTest
RunWith(SpringRunner.class)
public class SpringDataRedisTest {Autowiredprivate RedisTemplate redisTemplate;/*** 操作Set类型的数据*/Testpublic void testSet(){SetOperations setOperations redisTemplate.opsForSet();//存值setOperations.add(myset,a,b,c,a);//取值SetString myset setOperations.members(myset);for (String o : myset) {System.out.println(o);}//删除成员setOperations.remove(myset,a,b);//取值myset setOperations.members(myset);for (String o : myset) {System.out.println(o);}}
}2. 运行测试方法观察结果 7. Spring Data Redis 操作 Redis Zset 类型示例ZSetOperations ---- zset类型数据操作
1. 编写相关测试方法
SpringBootTest
RunWith(SpringRunner.class)
public class SpringDataRedisTest {Autowiredprivate RedisTemplate redisTemplate;/*** 操作ZSet类型的数据*/Testpublic void testZset(){ZSetOperations zSetOperations redisTemplate.opsForZSet();//存值zSetOperations.add(myZset,a,10.0);zSetOperations.add(myZset,b,11.0);zSetOperations.add(myZset,c,12.0);zSetOperations.add(myZset,a,13.0);//取值SetString myZset zSetOperations.range(myZset, 0, -1);for (String s : myZset) {System.out.println(s);}//修改分数zSetOperations.incrementScore(myZset,b,20.0);//取值myZset zSetOperations.range(myZset, 0, -1);for (String s : myZset) {System.out.println(s);}//删除成员zSetOperations.remove(myZset,a,b);//取值myZset zSetOperations.range(myZset, 0, -1);for (String s : myZset) {System.out.println(s);}}
}2. 运行测试方法观察结果 8. Spring Data Redis 操作 Redis 通用操作
1. 编写相关测试方法
SpringBootTest
RunWith(SpringRunner.class)
public class SpringDataRedisTest {Autowiredprivate RedisTemplate redisTemplate;/*** 通用操作针对不同的数据类型都可以操作*/Testpublic void testCommon(){//获取Redis中所有的keySetString keys redisTemplate.keys(*);for (String key : keys) {System.out.println(key);}//判断某个key是否存在Boolean itcast redisTemplate.hasKey(dongli);System.out.println(itcast);//删除指定keyredisTemplate.delete(myZset);//获取指定key对应的value的数据类型DataType dataType redisTemplate.type(myset);System.out.println(dataType.name());}
}2. 运行测试方法观察结果 总结
欢迎各位留言交流以及批评指正如果文章对您有帮助或者觉得作者写的还不错可以点一下关注点赞收藏支持一下。 博客的参考源码可以在我主页的资源里找到如果在学习的过程中有什么疑问欢迎大家在评论区向我提出