赞
踩
第一篇章
分析:直接从数据库中的数据,是存储在磁盘中的,需要多次的IO,而且请求数据库是基于TCP连接,单机的mysql qps 1W+,而redis的qps达到10w+;所以可以在Tomcat和mysql中加入屏障,将热点数据放入redis,非热点数据放入数据库中,流程如下
数据库
Redis可以作为一个高性能的内存数据库使用,支持持久化存储和数据备份,可以处理大量的读写操作。
消息队列
Redis的发布/订阅功能可以用于构建简单的消息队列系统,可以实现消息的发布、订阅和传递。
分布式锁
Redis的原子性和分布式特性可以用于实现分布式锁,保证在分布式环境下的数据一致性。
计数器
Redis的原子性操作和高性能可以用于实现各种计数器,比如网站的访问量统计、点赞数统计等。
地理位置应用
Redis的地理位置功能可以用于存储和查询地理位置信息,比如附近的人、附近的店铺等。
共同点
1. 都是基于内存的数据库,一般都用来当做缓存使用。
2. 都有过期策略。
3. 两者的性能都非常高。
区别
1. Redis 支持的数据类型更丰富(String、Hash、List、Set、zset),而 Memcached 只支持最简单的 key-value 数据类型;
2. Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可 以再次加载进行使用,而 Memcached 没有持久化功能,数据全部存在内存之中,Memcached 重启或者挂掉后,数据就没了
3. Redis 原生支持集群模式,Memcached 没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据;
4. Redis 支持发布订阅模型、Lua 脚本、事务等功能,而 Memcached 不支持
5. 特性丰富:Redis可用于缓存,消息,按key设置过期时间,过期后将会自动删除
所以,很少使用memcached了
Hest cart:1 1001 1 //向id为1的商品1001添加1间商品
特点
内部实现:quicklist
常用命令:rpush、lpop、lpush
应用场景:发布与订阅或者说消息队列,慢查询
常用数据结构
介绍
使用ZADD命令将需要排序的字符串添加到有序集合中。例如:
ZADD myset 1 "apple"
ZADD myset 2 "banana"
ZADD myset 3 "cherry"
使用ZRANGE命令获取按字典序排序的有序集合。例如:
ZRANGE myset 0 -1
这将返回按字典序排序的所有元素。
如果你想要逆序排序,可以使用ZREVRANGE命令。例如:
ZREVRANGE myset 0 -1
redis事务不支持回滚
redis 事务
原理刨析
lua定义
Lua应用场景
时间复杂度 取决于执行的脚本。
使用Lua脚本的好处:
日常使用redis为什么要用慢查询日志
客户端请求的生命周期的完整生命周期,4个阶段
慢查询只统计步骤3的时间,在生产环境中,慢查询功能可以有效地帮助我们找到Redis可能存在的瓶颈,但在实际使用过程中要注意以下几点
第二篇章
redis是内存数据,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将redis中方的数据以某种形式从内存存储到硬盘
。当下次redis重启的时候,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程的位置
redis
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。