
Redis
思维小刀
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis分布式锁的实现
不存在就会设置一个锁key,锁定资源 代码执行完毕,资源使用完毕后,这个key过期,释放锁,其他可以继续用了。 如果出现了这么一个问题:如果setnx是成功的,但是expire设置失败,那么后面如果出现了释放锁失败的问题,那么这个锁永远也不会被得到,业务将被锁死? 解决的办法:使用set的命令,同时设置锁和过期时间 set参数: set key value [EX seconds] [PX milliseconds] [NX|XX] EX seconds:设置失效时长,单位秒 PX m.原创 2021-08-17 00:39:14 · 139 阅读 · 1 评论 -
Redis的事务:相关命令 watch 与mysql事务的区别
Redis事务的概念: Redis 事务的本质是一组命令的集合。 事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。 总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。 Redis事务没有隔离级别的概念: 批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到。 Redis不保证原子原创 2021-05-18 09:10:32 · 287 阅读 · 0 评论 -
Redis缓存穿透 缓存击穿 缓存雪崩原因及其解决方案
解决缓存穿透 方法一:布隆过滤器:将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。 方法二:如果一个查询返回的数据为空(不管数据不存在还是系统故障),我们仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。 解决缓存击穿 key可能会在某些时间点被超高并发地访问,是一种非常“热点”的数据。这个时候,需要考虑一个问题:缓存被“击穿”的问题。 使用互斥锁(mutex key) 业界比较常用的做法原创 2021-05-17 23:29:05 · 185 阅读 · 0 评论 -
Redis快的原因:内存操作 单线程没有切换开销 多路复用IO
Redis 完全基于内存,绝大部分请求是纯粹的内存操作,非常迅速,数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度是 O(1)。 采用单线程,避免了不必要的上下文切换和竞争条件,不存在多线程导致的 CPU 切换,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有死锁问题导致的性能消耗。 使用多路复用 IO 模型,非阻塞 IO。 ...原创 2021-05-13 14:28:50 · 122 阅读 · 0 评论 -
Redis之CentOS7安装配置Redis
centos:https://www.cnblogs.com/zuidongfeng/p/8032505.html原创 2020-02-12 09:26:52 · 146 阅读 · 0 评论 -
Redis给PHP安装redis扩展
参考https://www.cnblogs.com/gaosf/p/11697726.html 下载 cd /tmp wget https://codeload.github.com/phpredis/phpredis/zip/develop 安装解压 yum -y install unzip zip 进行解压 unzip develop 跳转 cd phpredis-develop 安装phpize yum -y install php-devel 进行phpize sudo phpize原创 2020-11-25 20:39:47 · 237 阅读 · 0 评论 -
Redis快的原因:线程切换 IO 内存 数据结构 VM机制
1采用单线程,避免了不必要的上下文切换和竞争条件 2使用多路I/O复用模型,非阻塞IO; 3完全基于内存 4数据结构简单,对数据操作也简单 5Redis直接自己构建了VM 机制原创 2020-06-24 11:42:04 · 318 阅读 · 0 评论 -
Redis和Memcached:数据类型 过期策略 持久策略 虚拟内存 Value大小
1、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash、bitmaps、hyperloglog、geo 2、虚拟内存Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘 3、过期策略–memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10 4、存储数据安全–memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化) 5、由于Redis只使...原创 2020-06-01 00:07:41 · 301 阅读 · 0 评论 -
Redis基础高级学习笔记
文章目录 Redis(Remote Dictionary Server) Redis 运行快速的原因 数据类型 String 单条操作 多条操作 其他命令 Hash 单条操作 多条操作 其他命令 String存储对象(Json) VS Hash存储对象 List 添加 获取 获取并移除 Set 命令 Sorted_Set 命令 Key的操作 命令 数据库操作 命令 持久化 RDB(Relati...原创 2020-05-03 14:45:07 · 252 阅读 · 0 评论