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

网红网站建设怎么让百度收录网站

网红网站建设,怎么让百度收录网站,合肥做公司网站一般多少钱,做网站导出用什么色彩模式说到redis大家都不陌生,其中包括:共有16个数据库,默认为第0个数据库;数据以key-value键值的形式存储;数据类型包括String、List、Hash、Set等,其中最常用的是字符串;是单线程的、基于内存的&…

        说到redis大家都不陌生,其中包括:共有16个数据库,默认为第0个数据库;数据以key-value键值的形式存储;数据类型包括String、List、Hash、Set等,其中最常用的是字符串;是单线程的、基于内存的,主要受内存和网络带宽的影响… 这些都是基于Redis的基础理论知识储备。接下来我会通过开发中的StringRedisTemplate对象作为切入点,说一说Redis在开发中的那些事儿。

文章目录

    • 1. jedis还是lettuce?
    • 2. 字符串缓存
      • 应用场景1:基础缓存
      • 应用场景2:重复提交验证
    • 3. List缓存
      • 应用场景:高并发场景

1. jedis还是lettuce?

        两者都是redis的客户端,对redis操作进行了封装。其中lettuce是内部使用netty进行网络通信,性能很强,jedis已经停止更新了。lettuce相对于jedis在性能方面更为出色,jedis在单个线程中是线程安全的,功能上更加丰富,支持的数据类型更多。无论Springboot2.0以后默认使用lettuce作为操作redis的客户端,选择jedis还是lettuce,都需要根据具体的业务需求和场景进行评估和测试,以确定最适合的工具库。两者的分别使用如下:
pom依赖

jedis

<!-- redis -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions>
</dependency>
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId>
</dependency>

lettuce

<!-- redis -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

yaml配置

jedis

spring:redis:host: localhostpassword:port: 6379timeout: 10s  # 连接超时时间jedis:pool:max-active: 1000  # 连接池最大连接数(使用负值表示没有限制)max-wait: -1   # 连接池最大阻塞等待时间(使用负值表示没有限制)max-idle: 10      # 连接池中的最大空闲连接min-idle: 5       # 连接池中的最小空闲连接

lettuce

spring:redis:host: localhostpassword:port: 6379timeout: 10s  # 连接超时时间lettuce:pool:max-active: 1000  # 连接池最大连接数(使用负值表示没有限制)max-wait: -1   # 连接池最大阻塞等待时间(使用负值表示没有限制)max-idle: 10      # 连接池中的最大空闲连接min-idle: 5       # 连接池中的最小空闲连接

2. 字符串缓存

应用场景1:基础缓存

        对于redis有90%的使用场景都是基于String作为基础缓存使用的,对于经常使用的并且修改频率较低的数据存储在Redis缓存中,可以大大提高系统性能和响应速度,避免频繁地从数据库或其他后端服务读取数据。对象、集合等数据也可以通JSON序列化成字符串进行存储,大大提升了系统的并发性能,节省系统资源的消耗。

存字符串、对象、集合到缓存中,redisTemplate.opsForValue().set(key, value)

    //存普通字符串redisTemplate.opsForValue().set("testKey", "123456");//存某对象Person person = getPerson(); //TODO 获取到某个实例对象redisTemplate.opsForValue().set("testObj", JSON.toJSONString(person));//存某集合List<Person> persons = getPersonList(); //TODO 获取到某个实例集合redisTemplate.opsForValue().set("testList", JSON.toJSONString(persons));

存入缓存中,有时效性,超时之后缓存自动删除,redisTemplate.opsForValue().set(key, value, time)

    //设置登录token,30分钟有效(第3个参数支持:天、小时、分钟、秒等)redisTemplate.opsForValue().set("token", "123456", Duration.ofMinutes(30));

从缓存中读取数据,数据为字符串,可按实际存入的值进行序列化,redisTemplate.opsForValue().get(key)

    //从缓存中获取某对象String s1 = redisTemplate.opsForValue().get("testObj");Person person = JSON.parseObject(s1, Person.class);//从缓存中获取某集合String s2 = redisTemplate.opsForValue().get("testList");List<Person> persons = JSON.parseArray(s2, Person.class);

获取缓存剩余时间,redisTemplate.getExpire(key)

    //返回值为long值,单位是秒,如果是-1时代表的是永久保存Long expire = redisTemplate.getExpire("testKey");

重置缓存时间,redisTemplate.expire(key, time, timeUnit)

    //重置时间为2天redisTemplate.expire("testKey", 2, TimeUnit.DAYS);

判断是否存在,redisTemplate.hasKey(key)

    Boolean b = redisTemplate.hasKey("testKey");

模糊匹配获取所有的key值,redisTemplate.keys(“*”);

    //获取所有的key值Set<String> keys = redisTemplate.keys("*");//获取所有的testKey*模糊的key值Set<String> keys = redisTemplate.keys("testKey*");

删除缓存,redisTemplate.delete(key)

    redisTemplate.delete("testKey");

只是列了部分,还有multiSet、getRange、increment等方法都很实用

应用场景2:重复提交验证

        相同请求短时间内请求多次过滤,尤其是用于重要表单信息提交、秒杀请求的应用场景。在每次接收到请求时,生成一个唯一的请求标识(例如,可以使用请求的URL和参数进行哈希计算),在Redis中使用请求标识作为Key,将其存入到缓存中,设置一个合适的时间自动清理缓存中的过期请求标识,避免占用过多内存。这样就可以实现用Redis有效地进行接口重复请求的验证。

以下为请求重复验证工具类实例代码

@Component
public class RequestValidator {@Autowiredprivate StringRedisTemplate redisTemplate;/*** 重复请求方法* @param requestId 请求标识* @param validSecond 有效时间(单位:秒)* @return true重复 / false不重复*/public boolean isDuplicateRequest(String requestId, Long validSecond) {String s = redisTemplate.opsForValue().get(requestId);//缓存中取值不为空,证明是重复请求if (StringUtils.isNotEmpty(s)) {return true;}//缓存中取值为空,证明非重复请求,把请求标识放入到缓存中redisTemplate.opsForValue().set(requestId, "DUPLICATE_REQUEST", Duration.ofSeconds(validSecond));return false;}
}

3. List缓存

应用场景:高并发场景

        opsForList提供了一组简单而直观的方法来操作列表类型的数据,如leftPushAll、rightPushAll等,这使得批量存储变得非常方便,并且代码更易读,可以很好地支持高并发的场景。Redis的列表是按照插入的顺序进行存储的,利用leftPushAll或rightPushAll方法进行批量存储时,元素会按照给定的顺序依次插入到列表中,可以确保存储的顺序是可控的。虽然opsForList提供了方便的批量存储操作,但在实际使用时仍需考虑内存消耗、网络传输等因素,存储数据过大如果来不及消费,就会造成系统内存溢出导致服务器崩溃,存在数据丢失的风险。

✈ 具体怎么使用,在之前的文章中有介绍,在这里Java高并发之Redis批量提交数据库

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

相关文章:

  • 网站在线留言大数据分析营销平台
  • 按颜色分类的网页设计欣赏网站网络营销推广难做吗
  • 上海比较好的网站制作公司西安网站建设制作公司
  • 政府建设网站特点sem是什么的缩写
  • 正规网站建设定制北京做网站公司哪家好
  • 深圳网站优化技巧广州seo推广营销
  • 表白网站制作软件网站开发公司排行榜
  • 大兴做网站建设制作seozou是什么意思
  • 七牛云官网登录品牌seo是什么意思
  • 网站建设多长时间全网seo是什么意思
  • 百度搜索网站下方描述短视频矩阵seo系统源码
  • 织梦网站被挂马怎么处理天津百度关键词排名
  • 网站建设那个公司好购物网站制作
  • 政府部门网站栏目建设方案免费seo优化
  • 国外做的好的电商网站推荐2024免费网站推广大全
  • 做别人公司的网站违法吗济南seo优化
  • 盐城网站设计公司谷歌play
  • 北京市最新疫情发布会宁波seo排名优化价格
  • 商业网站建设定位bt樱桃 磁力岛
  • 做墙绘一般在哪个网站百度查询最火的关键词
  • 福州建设银行招聘网站顺德搜索seo网络推广
  • 网站怎么做短信接口谷歌浏览器下载安装2022
  • 优化网站除了百度站长腾讯新闻最新消息
  • 韩国手做配件网站杭州网站推广大全
  • 网站员工风采宁波网站建设推广平台
  • 欧洲最新消息网站seo报价
  • 佛山那里有做苗木销售网站html网页制作动态效果
  • wordpress 站点描述长尾词和关键词的区别
  • 做一个学校网站seo技术培训唐山
  • 网站收录时有时没有石家庄百度seo排名