毕设记录01-2022-0301_毕设数据缓存可以不做吗-程序员宅基地

技术标签: spring  spring boot  java  报错整理  经验贴  

毕设记录01

1. redis作用:

  • 数据库访问压⼒:为了降低对数据库的访问压⼒,当多个⽤户请求相同的数据时,我们可以将第⼀次从数据库查询到数据进⾏缓存(存储在内存中),以减少对数据库的访问次数
  • ⾸⻚数据的加载效率:将⼤量的且不经常改变的数据缓存在内容中,可以⼤幅度提⾼访问速度
  • 集群部署下的商品超卖:分布式事务
  • ⽤户登录:分布式会话

2. 向redis中存储数据

不同数据结构的添加操作

//1.string
//添加数据 set key value
stringRedisTemplate.boundValueOps(product.getProductId()).set( jsonstr);
//2.hash
stringRedisTemplate.boundHashOps("products").put(product.getProductId(),jsonstr);
//3.list
stringRedisTemplate.boundListOps("list").leftPush("ccc");
//4.set
stringRedisTemplate.boundSetOps("s1").add("v2");
//5.zset
stringRedisTemplate.boundZSetOps("z1").add("v1",1.2);

3. 向redis中读取数据

//string
String o = stringRedisTemplate.boundValueOps("103").get();
//hash 
Object v = stringRedisTemplate.boundHashOps("products").get("101");
//list
String s1 = stringRedisTemplate.boundListOps("list").leftPop();
String s2 = stringRedisTemplate.boundListOps("list").rightPop();
String s3 = stringRedisTemplate.boundListOps("list").index(1);
//set
Set<String> vs = stringRedisTemplate.boundSetOps("s1").members();
//zset
Set<String> vs2 = stringRedisTemplate.boundZSetOps("z1").range(0, 5);

4. 什么是JavaType???

JavaType是用来指定对象类型的,是用来指定pojo中属性的类型

5. redis安装与配置

5.1 Redis安装

基于linux环境安装redis

  1. 下载Redis:wget http://download.redis.io/releases/redis-5.0.5.tar.g
  2. 安装redis:yum -y install gcc
  3. 解压redis安装包:tar -zxvf redis-5.0.5.tar.gz
  4. 解压之后进⼈到redis-5.0.5⽬录:cd redis-5.0.5
  5. 编译:make MALLOC=libc
  6. 安装:make install
  7. 启动redis:redis-server
  8. 打开客户端:redis-cli

5.2 Redis配置

  1. 使⽤redis-server指令启动redis服务的时候,可以在指令后添加redis配置⽂件的路径,以设置redis是以何种配置进⾏启动

redis-server redis-6380.conf
#redis以redis-6380.conf⽂件中的配置来启动

  1. 如果不指定配置⽂件的名字,则按照redis的默认配置启动(默认配置≠redis.conf)
  2. 我们可以通过创建redis根⽬录下 redis.conf 来创建多个配置⽂件,启动多个redis服务

redis-server redis-6380.conf &
redis-server redis-6381.conf &

5.3 Redis配置文件

## 设置redis实例(服务)为守护模式,默认值为no,可以设置为yes
daemonize no
## 设置当前redis实例启动之后保存进程id的⽂件路径
pidfile /var/run/redis_6379.pid
## 设置redis实例的启动端⼝(默认6379)
port 6380
## 设置当前redis实例是否开启保护模式
protected-mode yes
## 设置允许访问当前redis实例的ip地址列表
bind 127.0.0.1
## 设置连接密码
requirepass 123456
## 设置redis实例中数据库的个数(默认16个,编号0-15)
databases 16
## 设置最⼤并发数量
maxclients
## 设置客户端和redis建⽴连接的最⼤空闲时间,设置为0表示不限制
timeout 0

6. img与sku为什么是list类型???

7. 页面静态化技术

  • 在电商系统中,为了提⾼商品详情的查询速度、减少对数据库的并发访问压⼒,我们可以使⽤redis来缓存商品详情,除此以外我们还可以⽤⻚⾯静态化 技术来达到此⽬的。
  • ⻚⾯静态化:将数据库中每条数据结合模版⽣成单独的HTML⽂件进⾏存储(⼀条数据对应⼀个独⽴的HTML⽂件),当⽤户访问数据时,直接访问不同的静态HTML⽂件即可。

8. 什么时候适合用数据缓存

  • 对于数据的写操作较少、但是会频繁的查询的数据适合使⽤缓存
  • 对于可能会发⽣修改,但是对数据⼀致性要求不⾼的数据也适合使⽤缓存

9. 为redis中的数据设置过期时间

stringRedisTemplate.boundValueOps("103").expire(20, TimeUnit.SECONDS);
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/HRX98/article/details/123213820

智能推荐

递归函数内部的执行顺序_递归代码执行顺序-程序员宅基地

文章浏览阅读1.9w次,点赞37次,收藏72次。#include &lt;stdio.h&gt; void fun(int n) { printf("1th - Level: %d Address: %d\n", n, &amp;n); if(n &lt; 3) fun(n+1); printf("2th - Level: %d Address: %d\n", n, &a..._递归代码执行顺序

MyBatis报错 Cause: java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecogn-程序员宅基地

文章浏览阅读975次,点赞2次,收藏2次。解决办法:在jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC 加上UTC,让数据库时区和本地时区一样就可以。:如图所示:_cause: java.sql.sqlexception: the server time zone value '嚙請對蕭嚙踝蕭

千万级数据量PageHelper查询分页总数慢的问题_mysql 分页总数慢-程序员宅基地

文章浏览阅读3.5k次,点赞5次,收藏13次。工作中遇到的问题,列表查询速度很慢,代码如下:mybatis是这么写的:调试发现原因是用的PageHelper分页插件,每次都要统计总数:解决方法:pagehelper的select COUNT()方法在Mapperj里写一个新的查询方法,末尾加上_COUNT,前面命名一致,返回结果必须是Long.再看效果,获取总条数的方法已经改变,速度快了很多,完美解决!如果帮到了你,欢迎点个赞!..._mysql 分页总数慢

java js中 function函数报错_function函数-程序员宅基地

文章浏览阅读731次。我们知道,在js中,函数实际上是一个对象,每个函数都是function函数类型的实例,并且都与其他引用类型一样具有属性和方法。因此,函数名实际上是指向函数对象的指针,不与某个函数绑定。在常见的两种定义方式(见下文)之外,还有一种定义的方式能更直观的体现出这个概念:var sum = new Function("num1", "num2", "return num1 + num2"); //不推荐F..._function报错

USRP环境配置及测试_usrp benchmark_rate-程序员宅基地

文章浏览阅读4.5k次,点赞7次,收藏33次。USRP环境配置及测试文章目录**USRP环境配置及测试****安装Ubuntu18.04(非虚拟机)****安装UHD****安装GNU Radio****USRP B210测试****供应商建议的测试**安装Ubuntu18.04(非虚拟机)选取理由:经测试安装双系统Ubuntu18.04版本可以成功运行,20.04版本、虚拟机配置失败。20.04版本理论上可行,但是截止至2020.9.26为止,部分资源缺乏,安装GNU Radio和UHD稍稍复杂,故推荐Ubuntu18.04版本鉴于该部分较为_usrp benchmark_rate

关于Ubuntu18.04风扇狂转的解决办法_linux风扇掉了一个之后其他的狂转-程序员宅基地

文章浏览阅读6.2k次。1.关闭睿频echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo2.限制CPU最大频率到50%echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct两个办法都可以,方法2更灵活,全程可以通过下面的命令实时查看:watch -n 0 "ca..._linux风扇掉了一个之后其他的狂转

随便推点

基于Netty最简单的WebSocket通讯_binarywebsocketframe-程序员宅基地

文章浏览阅读1w次。基于Netty最简单的WebSocket通讯基于Netty最简单的WebSocket通讯总览服务端EasyWsServerEasyWsServerHandler客户端EasyWsClientEasyWsClientHandler测试类EasyWsTest测试总览总共是五个文件: client EasyWsClient 客户端EasyWsClientHandler 客户端消息处理类server EasyWsServer 服务端EasyWsServerHandler 服务端_binarywebsocketframe

vue 赋值不改变_vue data对象重新赋值无效(未更改)的解决方式_vue赋值不成功-程序员宅基地

文章浏览阅读1w次。vue存在一个比较深的问题就是data中的属性对象如果在初始化的时候为{},那么后面在方法用普通的js语法赋值会无效这里是datadata() {undefinedreturn {undefinedmodel: {}};}这里是方法里的普通赋值afterUpload(response) {undefinedthis.model.icon = response.url;}普通方法会无效,需要使用vue提供的方法重新显示声明afterUpload(response_vue赋值不成功

popupwindow_popupwindow线程-程序员宅基地

文章浏览阅读376次。PopupWindow_popupwindow线程

centos6.10 开机卡死在“starting certmonger failed”_start certmonger-程序员宅基地

文章浏览阅读4.5k次。昨天升级openssl之后,真的入坑了,正常关机之后,今天居然开不了机了,卡在了进入图形界面的地方。于是重启按住“e”键,进入启动菜单,接着再按e进入编辑第一项,向下移动到第二项目kernel,接着按e进入编辑,去掉rhgb quiet字样,按回车保存回到选择项目,按b启动就能看到启动过程了,这时发现系统卡在了“starting certmonger failed”的地方。网搜是图形界面..._start certmonger

VSCODE C语言突然又不能跳转到定义了_vscode c语言无法跳转定义-程序员宅基地

文章浏览阅读962次。VSCODE 真是想说爱你不容易啊三天二头的不能跳到定义,跳转定义时,每次都要新打开一个文件 ,而且以前打开的,也不会理你,感觉是那么弱痴一样。没办法谁叫没更好用的编辑工具呢在网上找了半天,结果 是C/C++插件切换到了预发布版本,切换回来重启一下软件,就行了。..._vscode c语言无法跳转定义

G2plot 自定义tooltip的单条数据结构itemTpl_g2plot tooltip title fields-程序员宅基地

文章浏览阅读560次。fileds字段列出来需要用的字段_g2plot tooltip title fields

推荐文章

热门文章

相关标签