当前位置: 首页 > news >正文

我国企业网站的建设情况企业网站seo平台

我国企业网站的建设情况,企业网站seo平台,俄乌局势最新进展,企业邮箱注册申请163免费1.redis的数据类型,一共有5种.后面结合Jedis和redistemplate,以及单元测试junit一起验证  1)字符串  2)hash  3)列表  4)set(无序集合)  5)zset(有序集合) 2.Jedis的使用  a)引入依赖 <!--加入springboot的starter的起步依赖--><dependency><groupId>…

1.redis的数据类型,一共有5种.后面结合Jedis和redistemplate,以及单元测试junit一起验证
 1)字符串
 2)hash
 3)列表
 4)set(无序集合)
 5)zset(有序集合)
2.Jedis的使用
 a)引入依赖

<!--加入springboot的starter的起步依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.1.4.RELEASE</version></dependency>
<!--springboot整合redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.1.4.RELEASE</version></dependency>
<!--jedis依赖--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.1</version></dependency>
<!--lombok依赖--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version></dependency>
<!--配置springboot注解执行器用于yml文件提示--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>2.1.4.RELEASE</version></dependency>
<!--springboot整合junit--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>2.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId><version>2.1.4.RELEASE</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.6.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency></dependencies>

.b)配置yml和启动文件.这里需要注意一下,在使用redis数据库时,是不需要密码验证的.但是在后面配置RedisPoolFactory时,需要配置登录密码.因此,在yml这里需要设置密码,否则在test时会报错.

redis:host: 127.0.0.1password: 123456port: 6379timeout: 6poolMaxTotal: 30poolMaxIdle: 30poolMaxWait: 30
@SpringBootApplication
public class MySpringBootApplication {public static void main(String[] args){SpringApplication.run(MySpringBootApplication.class,args);}}

. 1)同时设置redis的登录密码

redis设置密码
验证登录: auth 123456
设置密码: config set requirepass 123456

.c)编写配置文件注入参数

@Data
@Component
@ConfigurationProperties(prefix = "redis")
public class RedisConfig1 {private String host;private int port;private int timeout; //秒private String password;private int poolMaxTotal; //资源池最大连接数private int poolMaxIdle; //资源池允许最大空闲连接数private int poolMaxWait; //超时时间 s
}

.d)配置RedisPoolFactory

@Service
public class RedisPoolFactory {@Autowiredprivate RedisConfig1 redisConfig1;@Beanpublic JedisPool JedisPoolFactory(){JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();jedisPoolConfig.setMaxTotal(redisConfig1.getPoolMaxTotal());jedisPoolConfig.setMaxIdle(redisConfig1.getPoolMaxIdle());jedisPoolConfig.setMaxWaitMillis(redisConfig1.getPoolMaxWait() * 1000);JedisPool jedisPool = new JedisPool(jedisPoolConfig, redisConfig1.getHost(), redisConfig1.getPort(),redisConfig1.getTimeout(), redisConfig1.getPassword());return jedisPool;}}

.e)编写测试用例
.  1)配置junit测试,注入RedisPoolFactory,RedisTemplate

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MySpringBootApplication.class)
public class TestJedis {@Autowiredprivate RedisPoolFactory redisPoolFactory;@Autowiredprivate RedisTemplate redisTemplate;
}

. 2)测试字符串

    @Testpublic void test1(){Jedis jedis = redisPoolFactory.JedisPoolFactory().getResource();//设置字符类型数据System.out.println("设置字符串类型数据");jedis.set("age","11");jedis.set("work","doctor");System.out.println(jedis.get("age"));System.out.println(jedis.get("work"));jedis.del("age","doctor");jedis.close();}

. 3)测试hash

     @Testpublic void test1(){Jedis jedis = redisPoolFactory.JedisPoolFactory().getResource();//设置hash类型数据System.out.println("设置hash类型数据");jedis.hset("people1","age","11");jedis.hset("people1","work","teacher");jedis.hset("people1","name","李四");System.out.println(jedis.hget("people1", "age"));System.out.println(jedis.hget("people1","work"));System.out.println(jedis.hget("people1","name"));jedis.del("people1");jedis.close();}  

. 4)测试列表

    @Testpublic void test1(){Jedis jedis = redisPoolFactory.JedisPoolFactory().getResource();//设置列表类型数据System.out.println("设置列表类型数据");jedis.lpush("person","name","age","work");//左面弹栈List<String> person2 = jedis.lrange("person", 1, 2);for (String s : person2) {System.out.println("获取列表给定范围元素: "+s);}System.out.println("左面弹栈");System.out.println(jedis.lpop("person"));System.out.println(jedis.lpop("person"));System.out.println(jedis.lpop("person"));//获取列表长度System.out.println(jedis.llen("person"));//右面弹栈System.out.println("右面弹栈");System.out.println(jedis.rpop("person"));System.out.println(jedis.rpop("person"));System.out.println(jedis.rpop("person"));jedis.close();}

. 5)测试set

    @Testpublic void test1(){Jedis jedis = redisPoolFactory.JedisPoolFactory().getResource();//设置set类型数据 只可以添加元素jedis.sadd("people2", "22", "33", "44","person");System.out.println(jedis.smembers("people2"));jedis.srem("people2","person");System.out.println(jedis.smembers("people2"));jedis.close();}

. 6)测试zset

@Testpublic void test1(){Jedis jedis = redisPoolFactory.JedisPoolFactory().getResource();//设置zset有序集合,排序set 从小到大jedis.zadd("score",92.00,"小明");jedis.zadd("score",69.00,"小兰");jedis.zadd("score",72.00,"小红");System.out.println(jedis.zrange("score",0,2));jedis.close();}

. 7)简单demo,排序学生成绩

@Testpublic void test2(){Jedis jedis = null;try {JedisPool jedisPool = redisPoolFactory.JedisPoolFactory();jedis = jedisPool.getResource();//造数据 学生成绩jedis.zadd("score",78,"小明");jedis.zadd("score",90,"小红");jedis.zadd("score",80,"小蓝");jedis.zadd("score",33,"小东");jedis.zadd("score",69,"小兰");//打印学生排序后的成绩Long scoreLength = jedis.zcard("score");Set<String> zrange = jedis.zrange("score", 0, scoreLength);for (String s : zrange) {System.out.println(s);}}finally {if(jedis != null){jedis.close();}}}

2.RedisTemplate的使用
 a)编写配置类,这里没有使用yml文件,采用的序列化机制 Jackson2JsonRedisSerializer

@Configuration
public class RedisConfig extends JCacheConfigurerSupport {@Beanpublic JedisPoolConfig jedisPoolConfig() {JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();//控制一个pool可分配多少个jedis实例jedisPoolConfig.setMaxTotal(500);//最大空闲数jedisPoolConfig.setMaxIdle(200);//每次释放连接的最大数目,默认是3jedisPoolConfig.setNumTestsPerEvictionRun(1024);//逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1jedisPoolConfig.setTimeBetweenEvictionRunsMillis(30000);//连接的最小空闲时间 默认1800000毫秒(30分钟)jedisPoolConfig.setMinEvictableIdleTimeMillis(-1);jedisPoolConfig.setSoftMinEvictableIdleTimeMillis(10000);//最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。jedisPoolConfig.setMaxWaitMillis(1500);jedisPoolConfig.setTestOnBorrow(true);jedisPoolConfig.setTestWhileIdle(true);jedisPoolConfig.setTestOnReturn(false);jedisPoolConfig.setJmxEnabled(true);jedisPoolConfig.setBlockWhenExhausted(false);return jedisPoolConfig;}@Beanpublic JedisConnectionFactory connectionFactory(JedisPoolConfig jedisPoolConfig) {RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();redisStandaloneConfiguration.setHostName("127.0.0.1");redisStandaloneConfiguration.setDatabase(0);redisStandaloneConfiguration.setPassword("123456");redisStandaloneConfiguration.setPort(6379);//获得默认的连接池构造器JedisClientConfiguration.JedisPoolingClientConfigurationBuilder jpcb =(JedisClientConfiguration.JedisPoolingClientConfigurationBuilder)JedisClientConfiguration.builder();//指定jedisPoolConifig来修改默认的连接池构造器(真麻烦,滥用设计模式!)jpcb.poolConfig(jedisPoolConfig);//通过构造器来构造jedis客户端配置JedisClientConfiguration jedisClientConfiguration = jpcb.build();//单机配置 + 客户端配置 = jedis连接工厂return new JedisConnectionFactory(redisStandaloneConfiguration, jedisClientConfiguration);}@Beanpublic RedisTemplate<Object, Object> redisTemplate(JedisConnectionFactory connectionFactory) {RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(connectionFactory);//初始化参数和初始化工作redisTemplate.afterPropertiesSet();return redisTemplate;}/*** description:  这里的入参使用了转配方式,由spring注入** @params No such property: code for class: Script1* @return*/@Beanpublic RedisTemplate<String,Object> redisTemplate1(RedisConnectionFactory redisConnectionFactory){//采用jackson2JsonRedisSerializer序列化机制Jackson2JsonRedisSerializer<Object> objectJackson2JsonRedisSerializer =new Jackson2JsonRedisSerializer<>(Object.class);ObjectMapper objectMapper = new ObjectMapper();//配置采用直接处理字段的方式序列化和反序列化objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);//对象映射器启用默认类型objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL,JsonTypeInfo.As.PROPERTY);objectJackson2JsonRedisSerializer.setObjectMapper(objectMapper);RedisTemplate<String, Object> template = new RedisTemplate<>();//配置template参数template.setConnectionFactory(redisConnectionFactory);template.setKeySerializer(objectJackson2JsonRedisSerializer);template.setValueSerializer(objectJackson2JsonRedisSerializer);template.setHashKeySerializer(objectJackson2JsonRedisSerializer);template.setHashValueSerializer(objectJackson2JsonRedisSerializer);template.afterPropertiesSet();return template;}
}

. 1)说明:缺少pom

        <!--lombok依赖--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>compile</scope></dependency><!--引入jackson的依赖--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.10.0</version></dependency><dependency>

.b)编写测试用例

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MySpringBootApplication.class)
@ContextConfiguration(classes = {RedisConfig.class})
public class TestRedisTemplate {@Autowiredprivate RedisTemplate redisTemplate;/*** description: 学习redistemplate** @params No such property: code for class: Script1* @return*/@Testpublic void test1(){//字符串数据类型redisTemplate.opsForValue().set("sport","football");System.out.println(redisTemplate.opsForValue().get("sport"));//hash数据类型redisTemplate.opsForHash().put("people","name","小明");redisTemplate.opsForHash().put("people","age",25);redisTemplate.opsForHash().put("people","salary",null);System.out.println(redisTemplate.opsForHash().get("people","name"));System.out.println(redisTemplate.opsForHash().get("people","age"));System.out.println(redisTemplate.opsForHash().get("people","salary"));//列表//左边堆栈redisTemplate.opsForList().leftPushAll("人生能有几时秋","大江东去浪淘尽",666,"醉酒当歌,人生几何");System.out.println(redisTemplate.opsForList().size("人生能有几时秋"));//左边弹栈System.out.println(redisTemplate.opsForList().leftPop("人生能有几时秋"));System.out.println(redisTemplate.opsForList().leftPop("人生能有几时秋"));System.out.println(redisTemplate.opsForList().leftPop("人生能有几时秋"));System.out.println(redisTemplate.opsForList().leftPop("人生能有几时秋"));System.out.println(redisTemplate.opsForList().leftPop("人生能有几时秋"));//set数据类型redisTemplate.opsForSet().add("person","小兰","小明","承瑞","兆雪");redisTemplate.opsForSet().difference("person","星辰大海");redisTemplate.opsForSet().difference("person","万古长灯");redisTemplate.opsForSet().difference("person",666);Set person = redisTemplate.opsForSet().members("person");for (Object o : person) {System.out.println(o);}//zset数据类型 这里的数据是doubleredisTemplate.opsForZSet().add("student","小张",89);redisTemplate.opsForZSet().add("student","小兰",99);redisTemplate.opsForZSet().add("student","小红",79);redisTemplate.opsForZSet().add("student","小明",69);Long num = redisTemplate.opsForZSet().count("student", 90, 100);System.out.println(num);Long numTotal = redisTemplate.opsForZSet().size("student");Set studentRank = redisTemplate.opsForZSet().range("student", 0, numTotal - 1);for (Object o : studentRank) {redisTemplate.opsForList().leftPushAll("studentList",o);}long students = redisTemplate.opsForList().size("studentList");for (long i = 0; i < students; i++) {System.out.println(String.format("第%s名: "+redisTemplate.opsForList().leftPop("studentList"),i+1));}}}

4.使用Jedis和RedisTemplate
 a)RedisTemplate的配置比Jedis的配置类似,但是RedisTemplate使用更方便,它可以自动归还redis连接,同时封装的方法也要比Jedis多

http://www.shuangfujiaoyu.com/news/40444.html

相关文章:

  • 野外美食网站设计欣赏网站推广的目的
  • 品牌网站建设代理seo研究协会网app
  • 百度收录最高发帖网站广告外链购买平台
  • 万网域名注册备案成都爱站网seo站长查询工具
  • 石家庄做网站建设的公司排名零基础学电脑培训班
  • 做视频网站利润如何处理淘宝关键词查询
  • 网站开发工程师的证件快速排名优化
  • 魅影看b站直播可以吗手机百度网址大全旧版安装
  • 西宁做网站的好公司优化关键词的方法有哪些
  • 南宁网吧优速网站建设优化seo
  • 大型大型网站建设方案百度网络推广营销
  • 溜冰后做爰在线网站公司企业网站建设
  • 深圳网站设计九曲网站建设怎么样建立自己的网站
  • 南昌网站建设公司服务器信息推广
  • 可信网站认证不做什么平台推广效果最好
  • 电视台网站建设方案搜索引擎seo关键词优化
  • 底湘西网站建设谷歌搜索入口365
  • wordpress 插件打不开沈阳seo优化排名公司
  • 力洋网站建设公司免费做网站软件
  • 成都市规划建设委员会网站百度关键词搜索量统计
  • 公司网站的建站要点深圳网络营销运营
  • 网站分站是怎么做的模板之家
  • wordpress不同用户不同菜单网络优化的流程
  • 有专业做网站的在哪里找软件开发公司
  • 深圳专业做网站专业网站推广具体内容
  • 淘宝客推广平台南沙seo培训
  • 产品建站工具广州网站排名推广
  • 网站后台无法上传附件网络广告投放
  • 高校网站建设建议郑州网站运营专业乐云seo
  • html5手机网站磁力猫官网cilimao