对数据进行加锁时,首先需要获得锁,来得到对数据的排他性访问能力,对数据进行一系列操作后,将锁释放给其他程序。目前接触过的锁都是基于一个客户端的多个线程或进程之间的锁,但是对于多个客户端的分布式锁,如何保持锁的状态是值得考虑的事情。Redis 中的watch命令可以代替对数据进行加锁,但watch 命令只会在数……继续阅读 »
破玉
5年前 (2020-04-04) 1495浏览 0评论
1个赞
多客户端同时处理数据时,不谨慎的操作有可能会出错。接下来我们讨论redis事务防止数据出错的方法,以及使用事务来提升性能。
redis事务型流水线
Redis 事务以特殊命令MULTI为开始,之后跟着用户传入的多个命令,最后以EXEC为结束。
Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:……继续阅读 »
破玉
5年前 (2019-10-30) 1201浏览 0评论
0个赞
在前面的一篇文章中,我们已经介绍了redis的持久化机制,但是常言说 “不要把鸡蛋放到一个篮子里”。随着系统数据量的增长,数据完整性变得越来越重要,这时候就需要复制特性来保证。提到复制就不得不提到主从,一般来说,复制都是基于主从的。redis 也使用了同样的方法来实现自己的复制特性。
设置从服务器来保存数据集的副本
&nb……继续阅读 »
破玉
5年前 (2019-10-27) 1358浏览 0评论
0个赞
众所周知,redis 是基于内存的,一般来说,机器挂了的话,内存中的数据就丢失了。我们如何保护redis 中数据的安全性呢?redis 本身提供了数据持久化机制,也就是将数据同时存储在磁盘中,每次redis 重启后就会从硬盘加载数据到内存。
redis 提供了两种不同的数据持久化方式,一种是快照,他是将某一时……继续阅读 »
破玉
5年前 (2019-10-23) 1267浏览 0评论
0个赞
缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?
一般来说,我们无非以下几种策略:
1)先更新数据库,再更新缓存;
2)先删除缓存,再更新数据库;
3)先更新数据库,再删除缓存;
我们……继续阅读 »
破玉
5年前 (2019-10-22) 1157浏览 0评论
0个赞
查看docker仓库的 redis 版本
docker search redis
拉取docker镜像
docker pull redis
查看docker镜像
docker images
启动docker 容器
docker run -p 6379:6379 -d --name redis-magic redis:latest ……继续阅读 »
破玉
5年前 (2019-10-08) 1458浏览 0评论
0个赞