【Cache】Redis配置以及常用命令( 二 )


事务支持
事务控制更稳定,细粒度更高
稳定性和细粒度控制方面不如关系型数据库
典型代表
Mysql、、SQL 、
Redis、、、、
5.2 创建实例过程
关系型数据库
非关系型数据库:
非关系型数据库不需要手动建数据库和集合(表) 。
二、Redis 的概述 1. Redis 简介
Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库 。
Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环 。
2. Redis 的进程模式
Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,Redis的实际处理速度则是完全依靠于主进程的执行效率 。若在服务器上只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力是会有一定程度的下降;若在同一台服务器上开启多个Redis进程,Redis在提高并发处理能力的同时会给服务器的CPU造成很大压力 。
在实际生产环境中,需要根据实际的需求来决定开启多少个Redis进程 。若对高并发要求更高一些,可能会考虑在同一台服务器上开启多个进程 。若CPU资源比较紧张,采用单进程即可 。
3. Redis 的优点4. Redis 的资源配比
CPU与内存资源配比1:8 。比如2核16G、4核32G、8核64G 。
这类是高内存资源占比 。尤其适合内存型数据库应用,比如 redis 、的部署 。在实践中,如果用8核16G部署一台 Redis ,会造成性能过剩 。redis是单进程单线程模式,对多核利用得不太好,所以适合向1:4或者1:8的高内存资源配比考虑 。如果想要 redis 把多核性能利用好,可以考虑一台机器上多部署几个 redis 。
5. Redis 的数据类型 结构类型结构存储的值结构的读写能力场景
(字符串)
可以是字符串,整数,浮点数
对整个字符串或者字符串的其中一部分进行操作,对整数和浮点数执行自增或者自减操作

List(列表)
一个链表,链表上每个节点都包含了一个字符串
从链表的俩端推入或者弹出元素:根据便移量对链表进行
修剪:读取单个或多个元素,根据值查找或者移除元素
最新消息排行:消息队列
Hash(散列)
包含键值对的无需散列表
添加、获取、移除单个键值对,获取所有键值对
存储、读取、修改用户属性
set(无序集合)
包含字符串的无需手机器,并且被包含的每个字符串都是独一无二各不相同的
添加、获取、移除单个元素,检查一个元素是否存在与集合中,计算交集,并集,差集,从集合里面随机获取元素
共同好友:利用唯一性,统计访问网站的所有IP
zset、 Set(有序集合)
字符串成员与浮点数分值之间的有序映射,元素的排列顺序由分值的大小决定
添加、获取、删除单个元素,根据分值范围或者成员来获取元素
排行榜:带权重的详细队列
除了以上五种常用的,还三种特殊的数据类型,分别是(基数统计),(位图) ,(地理位置) 。
6. Redis 使用场景
Redis作为基于内存运行的数据库,是一个高性能的缓存,一般应用在缓存、队列、排行榜、计数器、最近最热文章、最近最热评论、发布订阅等 。
Redis 适用于数据实时性要求高、数据存储有过期和淘汰特征的、不需要持久化或者只需要保证弱一致性、逻辑简单的场景 。
我们通常会将部分数据放入缓存中,来提高访问速度,然后数据库承担存储的工作 。
7. 哪些数据适合放入缓存中?8. Redis为什么这么快?