织梦网站上传及安装,抖音珠宝代运营,怎么做网站关键词视频,抖音seo优化1.绪论
redis是一款用c编写的kv数据库#xff0c;它具有丰富的数据类型#xff0c;并且执行原子操作#xff0c;自带数持久化#xff0c;并且实现了集群部署等功能#xff0c;我们来看看它有哪些特点:
1.提供了丰富的数据结构#xff0c;比如string#xff0c;list编写的kv数据库它具有丰富的数据类型并且执行原子操作自带数持久化并且实现了集群部署等功能我们来看看它有哪些特点:
1.提供了丰富的数据结构比如stringlisthashsetzset这五大基础的数据结构除此之外还提供了bigmap位图、GEO地理位置、HyperLog (超日志)等扩展结构
2.为了保证可用性提供了AOF和RDB这两种持久化的日志方式
3.为了保证集群高可用提供了主从同步、哨兵、集群等部署模式
4.为了实现多条命令的原子性redis提供了pipeline和支持lua脚本的扩展功能
5.为了实现生产者消费者模式redis提供了发布/订阅模式和stream类型
6.为了防止缓存中的数据一直递增超过内存上限redis根据lru机制筛选出不被经常访问的数据淘汰掉
7.redis高性能的原因也离不开它优秀的网络IO内核。
上面其实是redis的一些常见的特性也是我们学习redis的内容。
2.redis的作用
2.1 缓存
redis可以用来做缓存将一些热点数据存储到redis中可以降低数据库的请求数量增大并发降低数据库的压力。
2.2 session分离
在用户登录的场景中需要获取到用户信息可以将用户信息存储到redis中下次访问的时候直接从redis中获取。
2.3 分布式锁
尽管redis不是强一致性的框架但是在业务场景中还是经常将redis拿来实现分布式锁每次请求的时候可以将单据id放入到redis中如果下次请求到来的时候会根据单据id查询redis如果发现该数据已经在redis中存在便知道有其他线程持有锁请求失败。
2.4 消息队列
redis提供了阻塞队列可以通过阻塞队列来实现消息队列但是并不常用推荐使用常用的消息队列框架比如rocketmq、kafka等。
2.5 数据统计
比如热点数据的统计因为redis针对数字类型提供了自增的操作可以用来实现多维度的计数工能。
3. redis对比Memcached
redisMemcached 支持的数据类型redis支持复杂的数据类型比如hashsetlist等Memcached只支持字符串网络IOredis的io模式是单线程多线程读写是否支持持久化 redis支持RDB和AOF两种持久化方式 不支持是否支持集群redis支持主从哨兵集群等高可用部署通过key的hash值路由到不同的单节点机器上节点之间不相互通信是否支持原子命令redis支持lua脚本事务等原子操作Memcached 只支持简单的key的读写
综上Memcached 更适合于只支持简单的数据插入并且不担心数据丢失的场景redis支持更加复杂的写入和查询操作场景。
4.总结
本文主要介绍了redis的一些特点和作用并且和Memcached进行了对比后面我们将来探讨redis的具体使用以及每个高级特性是如何实现的。