针对分支创建
1:在远程仓库创建:直接本地使用git pull 拉取,即可
2.在本地创建分支,首先切换分支(到刚创建的分支),然后使用 git push 远程仓库简称 分支名 ,远程刷新就可以
文件提交远程步骤
1.先远程克隆(根据连接连接),会生成对应仓库目录
2.克隆后会自动创建目录,进入目录,在当前目录中创建文件,并使用 status 查看,使用add . 添加,在使用commit进行提交,最后使用 push进行推送到远程仓库
idea操作
0-1(先编写后传到远程仓库,必须是新建的???)
在当前工程建立仓库,第二步找到股那里远程进行关联(或着,使用克隆把生成的 .git文件放到项目目录中进行关联)
1-2(先拉取在编写)
直接使用克隆,会把远程的项目都拉取过来,然后直接建立分支编写即可
sysdate()
而不更新实体类属性,会导致插入后对象状态与数据库不一致,需谨慎使用。
针对的是实体类中没有但是数据表有的,直接使用会导致sql有值而实体类没有值(要二次查询)
在对redis的list进行操作时 (遵循从左侧插入,保证每次插入的数据都在头节点,右侧弹出)
lpush list a b c # 向列表左侧依次插入 a、b、c 先插入 a,列表为:[a] 再插入 b,b 放在 a 的左侧,列表为:[b, a] 最后插入 c,c 放在 b 的左侧,列表为:[c, b, a] lrange list 0 -1 中 -1 表示最后一个元素,因此返回所有元素 c b a -1代表的是最后一个元素 弹出的话是从右侧,因此先弹出a
hash
有点类似树
redisTemplate.opsForHash().put("user", "name", "张三"); redisTemplate.opsForHash().put("user", "age", "30"); // 根据大key和小key获取值 System.out.println(redisTemplate.opsForHash().get("user", "name")); // 根据大key获取所有的小key Set<Object> keys = redisTemplate.opsForHash().keys("user"); // 根据大key获取所有的值 List<Object> values = redisTemplate.opsForHash().values("user");
- Hash 是 “键 - 字段 - 值” 的三级结构,字段和值是一一对应,没有排序功能。
- ZSet 是 “键 - 成员 - 分数” 的三级结构,成员唯一,分数用于排序,这是 ZSet 的核心特性。
redis中的五种数据类型以及应用场景
string:啥都能存,就是最基本的键值对 (key:啊 value :ss)
hash 存储对象信息,购物车(商品,名字,销量) (大key 小key value)
list:浏览记录,朋友圈 (左边插入,右边弹出)
set:点赞收藏 (去重)(意思就是点赞过就不能再点了,本质数据只存储一次)
zset:排行榜:游戏积分榜(game:rank
中,用户A → 90分
、用户B → 80
)(key member score )
针对redis加入缓存
查询的根据要求进行加入,而修改类的一般必须加入:主要是为了解决加入redis的缓存的方法读到脏数据
原因: 例如 select(id)select()对select()加入redis,则他会从redis中读取,因此相对应的增删改也要对缓存进行操作(并手动加入)就是为了保证select()不会读到脏数据,而select(id)每次都是从数据库读的,都是最新的,不存在脏数据
redis有点类似理解为一个临时的数据库,就是会存放临时的高频信息(对应类型的数据库副本),没有才会进行sql数据库查找(就是相当于先看下数据库副本,没有再查询数据库)
List<NursingProject> nursingProjects = (List<NursingProject>)redisTemplate.opsForValue().get(NURSING_PROJECT_ALL); //上面的意思就默认代表redis中可能存储List<NursingProject>的数据(不是离散的,因此可以直接拿到) if (!nursingProjects.isEmpty()){ return nursingProjects; } //当不存在与redis中则要继续sql的操作 nursingProjects = nursingProjectMapper.selectNursingProjectList(nursingProject); redisTemplate.opsForValue().set(NURSING_PROJECT_ALL,nursingProjects,60*60*24+(int)Math.random()*100, TimeUnit.SECONDS); return nursingProjects ;