数据库 >> Mysql | 优化 | Redis
Redis

Redis 缓存数据一致性的理解和方案

4个月前 (2020-04-03) 742 浏览 评论

数据库和缓存读写顺序?在了解缓存数据一致之前,我们需要先了解数据库和缓存的读写顺序。最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern。命中:程序先从缓存中读取数据,如果命中,则直接返回失效:程序先从缓存中读取数据,如果没有命中,则从数据库中读取,成功之后将数据放到缓存中更新:程序先更新数据库,然后再删除缓存关于更新操作,其实问题比较多。通常疑惑的就几种:1、我们不考虑更新缓存的原因:首先,并发情况下也可能出现数据不是最新的情况。其次,不确定要更新的这个缓存项是否会被经

Redis

Redis 缓存需要了解和注意的问题

4个月前 (2020-04-03) 165 浏览 评论

Redis缓存想必大家都很熟悉,但是工作中可能使用到的地方都很片面,我们需要有个整体的认识。结合网上查询的和自己的理解,我们也具体总结下。什么是Redis?Redis是一个开源的底层使用C语言编写的key-value存储数据库。可用于缓存、事件发布订阅、高速队列等场景。而且支持丰富的数据类型:string(字符串)、hash(哈希)、list(列表)、set(无序集合)、zset(sorted set:有序集合)。为什么要使用Redis?高并发:单机缓存支持每秒QPS十几万,远远超过数据库;高性

Redis

Redis 并发竞争的理解和方案

4个月前 (2020-04-03) 144 浏览 评论

Redis的并发竞争问题,主要是发生在并发写竞争。例如:两个连接同时对price进行写操作,同时加10,最终结果我们知道,应该为30才是正确。考虑到一种情况:T1时刻,连接1将price读出,目标设置的数据为10+10 = 20。T2时刻,连接2也将数据读出,也是为10,目标设置为20。T3时刻,连接1将price设置为20。T4时刻,连接2也将price设置为20,则最终结果是一个错误值20。怎么解决?主要思路就是把并行读写改成串行读写的方式,从而来避免资源竞争。| 分布式锁我们使用

优化

Mysql 优化

4个月前 (2020-04-02) 153 浏览 评论

MYSQL优化主要分为以下四大方面:架构:主从复制,读写分离,负载均衡。设计:存储引擎,字段类型,范式与逆范式功能:索引,缓存,分区分表。SQL:慢查询,经验。| 服务器架构服务器的架构,通常是由多台服务器通过负载均衡组合成的服务器集群。主从复制:Mysql服务器内部支持复制功能,仅仅需要通过简单配置即可,通常是一主多从的典型结构:主服务器负责写数据,从服务器负责读数据。读写分离、负载均衡:开启主从复制后,PHP不再操作Mysql数据库服务器,而是去操作读写分离、负载均衡服务器,只要服

Redis

Redis 缓存穿透、缓存雪崩、缓存击穿的理解和解决方案

5个月前 (2020-02-18) 197 浏览 评论

今天被问到缓存的一些问题,缓存穿透、缓存雪崩、缓存击穿这些专属名词还真没了解过。后来了解了下,这些的确是我们必须考虑的,之前没有接触过的确是不应该的,好在赶紧了解下。总结情况如下:| 缓存流程正常的缓存流程一般是这样的:1、发起请求->缓存存在->返回正常数据->End2、发起请求->缓存不存在->数据库存在->更新缓存->返回正常数据->End3、发起请求->缓存不存在->数据库不存在->返回空->End正常的用

Mysql

Mysql 去重

10个月前 (2019-09-18) 296 浏览 评论

MYSQL查询去重我们有两种方法:1. MYSQL distinct 关键字去重查询。select * from it_user; id      name          sex 1 zhangsan        

Mysql

Mysql 命令行下数据库导入导出

11个月前 (2019-08-19) 359 浏览 评论

    Mysql 在命令行下导出导入也是十分方便的,用远程连接数据库操作也是可行的,但是有时sql脚本比较庞大,用远程连接可能会超时也比较慢,这时候直接在服务导入导出是最佳选择。| 导出    1. 导出结构+数据    mysqldump -u 用户名 -p 数据库名 > 导出的文件名[root@xxx www.itspire.cn]# 

Mysql

Mysql8.0 开启远程连接

1年前 (2019-05-13) 1029 浏览 评论

    一般我们都习惯用第三方去连接数据库,查数据的时候比较直观,所以都会开启远程链接,强烈建议不要把root的 localhost 给改成了 % ,我们可以自己创建新的用户:| 创建用户# step1. 登录数据库 root@e21df6047c1d:/# mysql -u root -p Enter password:  # step2. 切换

Mysql

Mysql 批量更新

3年前 (2017-05-08) 1136 浏览 评论

Mysql 批量更新。在实际项目中,我们经常需要批量更新不同的值,这里我记录了下平时用的方法。| 循环更新(效率极低)foreach($list as $k=>$v){     $sql = "update table SET filed = $v where id = $k";