![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sql
文章平均质量分 70
1Stack1
在校大学生
展开
-
redis单体项目中实现秒杀以及一人一单
这时既可以保证线程安全也可以保证效率,因为不同的用户请求要执行该操作synchronized锁的不是同一个对象,这样可以保证效率高,而同一个用户请求同一时间来执行时只有一个请求能执行下面操作,操作完成后用户信息已经被修改为已抢到用户就可以保证线程安全。这个程序是执行再某个线程执行sql语句时保证数据库中优惠卷剩余的库存和之前自己查到的相同,即在执行该线程到执行完sql之前没有被其他线程插队。这也是线程不安全的,当将要执行将用户信息修改为抢到过优惠卷的用户时,进行判断就会线程不安全。虽然线程安全但是效率低。原创 2022-11-11 21:53:23 · 350 阅读 · 0 评论 -
redis生产问题
缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓永远不会生效,这些请求都会打到数据库这就会导致一些后果比如:某个黑客故意制造我们缓存中不存在的 key 发起大量请求,导致大量请求落到数据库。可能将数据库搞崩。原创 2022-11-10 20:08:10 · 206 阅读 · 0 评论 -
redis缓存更新
主动更新策略Cache Aside Pattern(路旁缓存模式) 缓存调用者在更新数据库的同时更新缓存1操作缓存和数据库时有三个问题要考虑:删除缓存还是更新缓存更新缓存:每次更新数据库都更新缓存,无效写操作过多(即应用一直都执行写操作而不执行读操作)删除缓存:更新数据库时让缓存失效,查询时再更新缓存(推荐使用)原创 2022-11-10 16:08:19 · 419 阅读 · 0 评论 -
Redis一基本数据类型和命令
Reids是一个键值数据库,key一般是String类型,但是value的类型多种多样。Hash类型其value是一个无序字典,类似于java中的HashMap。查看符合模板的所有key,效率较低,不建议在生产环境设备上使用。其value是字符串,不过根据字符串的格式分为。String类型是Redis最简单的存储类型。产看存在几个要查看是否存在的key。查看redis数据类型常用的命令。查看一个key的剩余存在时间。指定一个key的存在时间。原创 2022-11-06 19:22:56 · 141 阅读 · 0 评论 -
MySQL约束
约束(constraint)约束是在创建表的时候我们可以给表中的字段加上一些约束来保证表中数据的完整性和有效性。原创 2022-11-05 19:49:00 · 135 阅读 · 0 评论 -
数据库关系以及各种关系下如何设计数据库
这两张表都是对同一个用户,一个用户提交给平台的信息一定是一一对应着,但是明明都是同一个用户的还这样设计表,尽管这样使每一个表的字段数量减少但也会因为增加表的数量使表的关系变得很乱,当设计一个简单表关系时这样也许不会怎样,但是表的数量一增加,表与表之间的关系就变得更加重要。他们之间会有复杂的关系,要表示他们之间的关系不能只使用两张表,因为如果user表中一个字段专门表示身份的话(或者role表的id)由于一个user可能有两个身份而sql又不能使用一个字段存取两个值;user_info 表。原创 2022-10-24 14:13:45 · 671 阅读 · 0 评论