当前位置: 首页 > news >正文

破解织梦做的网站无锡低价网站排名

破解织梦做的网站,无锡低价网站排名,云建站模板,做网站备案的问题内存数据库 Redis7 一、Redis 概述1.1 Redis 简介1.2 Redis 的用途1.3 Redis 特性1.4 Redis 的IO模型 二、Redis 的安装与配置2.1 Redis 的安装2.2 连接前的配置2.3 Redis 客户端分类2.4 Redis 配置文件详解 三、Redis 命令四、Redis 持久化五、Redis 主从集群六、Redis 分布式… 内存数据库 Redis7 一、Redis 概述1.1 Redis 简介1.2 Redis 的用途1.3 Redis 特性1.4 Redis 的IO模型 二、Redis 的安装与配置2.1 Redis 的安装2.2 连接前的配置2.3 Redis 客户端分类2.4 Redis 配置文件详解 三、Redis 命令四、Redis 持久化五、Redis 主从集群六、Redis 分布式系统七、Redis 缓存八、Lua脚本详解九、分布式锁 一、Redis 概述 1.1 Redis 简介 Redis Remote Dictionary Server 远程字典服务 由意大利人 Salvatore Sanfilippo 又名 Antirez 开发 是一个使用 ANSI C 语言 编写、支持网络、可基于 内存 亦可 持久化 的 日志型、 NoSQL 开源内存数据库 其提供多种语言的 API 。从 2010 年 3 月 15 日起 Redis 的开发工作由 VMware 主持。从2013 年 5 月开始 Redis 的开发由 Pivotal 赞助。 2008 年时 Salvatore Sanfilippo 自己开发一个叫 LLOOGG 的网站。 Redis 之所以称之为 字典服务是因为 Redis 是一个 key-value 存储系统 。支持存储的 value 类型 有很多包括 String(字符串) 、 List(链表) 、 Set(集合) 、 Zset(sorted set 有序集合) 和 Hash(哈希类型 等 。 Redis 的国际知名用户有 Twitter 、 GitHub 、 Facebook 等国内知名用户有阿里巴巴、腾讯、百度、搜狐、优酷、美团、小米等。熟练使用和运维 Redis 已经成为开发运维人员的一个必备技能。 ⭐️ NoSQL NoSQL“non relational”, “Not Only SQL”泛指 非关系型的数据库。随着互联网 web2.0网站的兴起传统的关系数据库在处理 web2.0 网站特别是 超大规模 和 高并发 的 SNS (社交) 类型的 web2. 0 纯动态网站 已经显得力不从心出现了很多难以克服的问题而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 NoSQL 数据库的产生就是为了解决 大规模数据集合 多重数据种类 带来的挑战特别是大数据应用难题。 1 键值存储数据库 就像 Map 一样的 key-value 对。典型代表就是 Redis 。 2 列存储数据库 关系型数据库 是典型的 行存储数据库。 其存在的问题是按行存储的数据在 物理层面 占用的是 连续存储空间不适合海量数据存储。 而按 列存储 则可实现 分布式存储适合海量存储。典型代表是 HBase 。 3 文档型数据库 其是 NoSQL 与 关系型数据 的结合最像关系型数据库 的 NoSQL。典型代表是MongoDB。 该类型的数据模型是版本化的文档半结构化的文档以特定的格式存储比如 JSON。 4 图形(Graph)数据库 用于存放一个 节点关系 的数据库例如描述不同人间的关系。典型代表是Neo4J。 1.2 Redis 的用途 Redis 在生产中使用最多的场景就是 做数据缓存 。即客户端从 DBMS 中查询出的数据首先写入到 Redis 中后续无论哪个客户端再需要访问该数据直接读取 Redis 中的即可不仅减小了 RT 而且降低了 DBMS 的压力。 根据 Redis 缓存的数据与 DBMS 中数据的同步性划分缓存一般可划分为两类 实时同步缓存 与 阶段性同步缓存 。 实时同步缓存 是指DBMS 中 数据更新 后 Redis 缓存中的存放的相关数据会被 立即清除以促使再有对该数据的访问请求到来时必须先从 DBMS 中查询获取到最新数据然后再写入到 Redis 。阶段性同步缓存 是指Redis 缓存中的数据允许在一段时间 (生存时长) 内与 DBMS 中的数据不完全一致。而这个时间段就是这个缓存数据的 过期时间。 1.3 Redis 特性 能够做缓存的技术、中间件很多例如MyBatis 自带的二级缓存、 Memched 等。只所以在生产中做缓存的产品几乎无一例外的会选择 Redis 是因为它有很多其它产品所不具备的特性。 性能极高 Redis 读的速度可以达到 11w次/s 写的速度可以达到 8w次/s 。只所以具有这么高的性能因为以下几点原因 Redis 的所有操作都是在内存中发生的。 Redis 是用 C 语言 开发的。 Redis 源码非常精细集性能与优雅于一身。 简单稳定 Redis 源码很少。早期版本只有 2w 行左右。从 3.0 版本开始增加了集群功能代码变为了 5w 行左右。持久化 Redis 内存中的数据可以进行持久化其有两种方式 RDB 与 AOF 。高可用集群 Redis 提供了高可用的主从集群功能可以确保系统的安全性。丰富的数据类型 Redis 是一个 key-value 存储系统 。支持存储的 value 类型很多包括 String(字符串) 、 List(链表) 、 Set(集合) 、 Zset(sorted set 有序集合) 和 Hash (哈希类型)等还有 BitMap 、 HyperLogLog 、 Geospatial 类型。 BitMap 一般用于 大数据量 的 二值性统计 。HyperLogLog 其是 Hyperlog Log 用于对数据量超级庞大的日志做 去重统计。Geospatial 地理空间其主要用于地理位置相关的计算。 强大的功能 Redis 提供了数据过期功能、发布/订阅功能、简单事务功能还支持 Lua 脚本扩展功能。客户端语言广泛 Redis 提供了简单的 TCP 通信协议编程语言可以方便地的接入 Redis 。所以有很多的开源社区、大公司等开发出了很多语言的 Redis 客户端。支持 ACL 权限控制 之前的权限控制非常笨拙。从 Redis6 开始引入了 ACL 模块可以为不同用户定制不同的用户权限。 ACLAccess Control List 访问控制列表是一种 细粒度 的权限管理策略可以针对 任意用户与组 进行权限控制。 目前大多数 Unix 系统与 Linux 2.6 版本已经支持 ACL 了。Zookeeper 早已支持 ACL 了。Unix与 Linux 系统默认使用是 UGO (User 、Group 、Other) 权限控制策略 其是一种 粗粒度 的权限管理策略。 支持多线程 IO 模型 Redis 之前版本采用的是单线程模型从 6.0 版本开始 支持 了多线程模型。 1.4 Redis 的IO模型 Redis 客户端提交的各种请求是如何最终被 Redis 处理的 Redis 处理客户端请求所采用的 处理架构称为 Redis 的 IO 模型。不同版本的 Redis 采用的 IO 模型 是不同的。 ⭐️ 1)、单线程模型 对于 Redis 3.0 及其以前版本 Redis 的 IO 模型采用的是 纯粹的单线程模型 。即所有客户端的请求全部由一个线程处理。 Redis 的单线程模型采用了 多路复用技术 。 对于多路复用器的 多路复用技术 常见的有三种 select 模型数组、 poll 模型链表、 epoll 模型。 select 模型底层是数组性能较低不常见。poll 模型的选择算法采用的是轮询算法。该模型对客户端的就绪处理是 有延迟的 。epoll 模型的选择算法采用的是回调方式。 根据就绪事件发生后的处理方式的不同又可分为 LT 模型与 ET 模型。 每个客户端 若 要向 Redis 提交请求都需要与 Redis 建立一个 socket 连接并向 事件分发器 注册一个事件。一旦该事件发生就表明该连接已经就绪。而一旦连接就绪事件分发器就会感知到然后获取客户端通过该连接发送的请求并将由该事件分发器所绑定的这个 唯一的线程 来处理。如果该线程还在处理多个任务则将该任务写入到任务队列等待线程处理。只所以称为事件分发器是因为它会根据不同的就绪事件将任务交由不同的事件处理器去处理。 ⭐️ 2)、混合线程模型 从Redis 4.0 版本开始 Redis 中就开始加入了 多线程 元素 。处理客户端请求的仍是单线程模型但对于一些 比较耗时但又不影响对客户端的响应的操作就由后台其它线程来处理。 例如持久化、 对 AOF 的 rewrite 、对失效连接的清理等。 ⭐️ 3)、多线程模型 Redis 6.0版本才是真正意义上的多线程模型。因为其对于客户端请求的处理采用的是多线程模型。 多线程 IO 模型中的 “多线程” 仅用于 接受、解析客户端的请求然后将解析出的请求写入到任务队列。而对具体任务命令的处理仍是由主线程处理。这样做 使得用户 无需考虑 线程安全问题无需考虑 事务控制 无需考虑像 LPUSH/LPOP 等 命令的执行顺序问题 。 ⭐️ 4)、优缺点总结 (面试) 1 单线程模型 优点可维护性高性能高。不存在 并发读写 情况所以也就 不存在 执行顺序的不确定性不存在 线程切换开销不存在 死锁问题不存在 为了数据安全而进行的 加锁/解锁开销。缺点性能会受到影响且由于单线程 只能使用一个处理器现在都是多处理器所以会形成 处理器浪费。 内存的响应时长RT 100 n s 100ns 100ns Redis 每秒处理的读写请求数量应该可以达到 1 s / 100 n s 1 0 9 n s / 100 n s 1 0 7 1 k w 1s/100ns 10^9ns/100ns 10^7 1kw 1s/100ns109ns/100ns1071kw 实际情况是Redis 每秒可以处理 8 w − 11 w 8w - 11w 8w−11w 的读写请求 2 多线程模型 优点其结合了 多线程 与 单线程 的优点避开了它们的所有不足。缺点该模型没有显示不足。如果非要找其不足的话就是其并非是一个真正意义上的 ”多线程”因为 真正处理任务的线程 仍是单线程。所以其对性能也是有些影响的。 二、Redis 的安装与配置 这里是要将 Redis 安装到 Linux 系统中。 我的是 CentOS7已经关闭防火墙安装好了jdk以及常用的命令工具。 2.1 Redis 的安装 ⭐️ (2.1.1)、安装前的准备工作 1)、安装 gcc 由于 Redis 是由 C/C 语言编写的 而从官网下载的 Redis 安装包是需要 编译后 才可安装的 所以对其进行编译就必须要使用相关编译器。对于 C/C 语言的编译器使用最多的是 gcc 与 gcc-c而这两款编译器在 CentOS 7 中是没有安装的所以首先要安装这两款编译器。GCC GNU Compiler Collection GNU 编译器集合。 yum -y install gcc gcc-c 2)、下载 Redis Redis 的官网为 http://redis.io 3)、上传到 Linux 将下载好的压缩包上传到 Linux 的 /opt/tools 目录中 。 ⭐️ (2.1.2)、安装 Redis 1)、解压 Redis 将 Redis 解压到 /opt/apps 目录中。 tar -zxvf redis-7.2.1.tar.gz -C /opt/apps/进入到 /opt/apps 目录中 再将 Redis 解压包目录更名为 redis 不更名也无所谓改名是为了简化目录名)。 mv redis-7.2.1/ redis2)、编译 编译过程是根据 Makefile 文件进行的而 Redis 解压包中已经存在该文件了。所以可以直接进行编译 了 。 在解压目录下执行编译命令 make 进行编译。 如果没有准备好C语言编译环境make 会报错 — Jemalloc/jemalloc.h没有那个文件 解决办法 首先看gcc 是否安装成功成功后运行 make distclean 将编译文件清除掉然后再在 redis 目录下再次执行 make 命令只是编译好 当看到如下提示时表示编译成功。 3)、安装 在 Linux 中对于编译过的安装包执行 make install 进行安装。 可以看到共安装了三个组件 redis 服务器、客户端 与 一个性能测试工具 benchmark 。 4)、查看 bin 目录 安装完成后打开 /usr/local/bin 目录可以看到出现了很多的文件。 通过 echo $PATH 可以看到/usr/local/bin 目录是存在于该 系统变量 中的 这样这些命令就可以在任意目录中执行了。 ⭐️ (2.1.3)、Redis 启动与停止 1)、前台启动 在任意目录执行 redis-server 命令即可启动 Redis 。 这种启动方式会 占用当前命令行窗口。 再开启 一个会话窗口可以查看到当前的 Redis 进程默认端口号为 6379。 ps aux | grep redis通过 Ctrl C 命令可以停止 Redis 。 2)、命令式后台启动 使用 nohup 命令最后再添加一个 符可以使要启动的程序在后台以守护进程方式运行。 nohup redis-server 这样的好处是进程启动后不会占用一个会话窗口且其还会在当前目录即运行启动命令的当前目录中创建一个 nohup.out 文件用于记录 Redis 的操作日志。 3)、Redis 的停止 通过 redis-cli shutdown 命令可以停止 Redis 。 4)、配置式后台启动 使用 nohup 命令可以使 Redis 后台启动但每次都要键入 nohup 与 符比较麻烦。可以通过修改 Linux 中 Redis 的核心配置文件 redis.conf 达到后台启动的目的。redis.conf 文件在 Redis 的安装目录根下。 将 daemonize 属性值由 no 改为 yes 使 Redis 进程以守护进程方式运行。 vim redis.conf :set nu #显示行号 /daemonize #搜索daemonize修改后再启动 Redis 就无需再键入 nohup 与 符 了但必须要指定启动所使用的 Redis配置文件。 这是为什么呢 使用 nohup redis-server 命令启动 Redis 时启动项中已经设置好了 Redis 各个参数的默认值 Redis 会按照这些设置的参数进行启动。但这些参数是可以在配置文件中进行修改的修改后需要在启动命令中指定要加载的配置文件这样配置文件中的参数值将覆盖原默认值。Redis 已经给我们提供好了配置文件模板是 Redis 安装目录的根目录下的 redis.conf 文件。由于刚刚对 redis.conf 配置文件做了修改所以在开启 Redis 时需要显示指出要加载的配置文件。配置文件应紧跟在 redis-server 的后面。 redis-server /opt/apps/redis/redis.confps aux | grep redis2.2 连接前的配置 Redis 是一个内存数据库服务器就像 MySQL 一样对其操作也需要通过 客户端 进行。若要使 远程主机上的客户端 能够连接并访问到 服务端的 Redis 则服务端首先要做如下配置。 ⭐️ (2.2.1)、绑定客户端 IP Redis 可以通过修改配置文件来限定可以访问自己的 客户端 IP 。 以上设置后只允许当前主机访问当前的 Redis 其它主机均不可访问。 所以如果不想限定访问的客户端只需要将该行 注释掉 即可。 ⭐️ (2.2.2)、关闭保护模式 默认保护模式是开启的。 其只允许本机的客户端访问 即只允许自己访问自己。但生产中应该关闭 以确保其它客户端可以连接 Redis 。 #命令模式下输入 :noh #去掉搜索出来的黄标⭐️ (2.2.3)、设置访问密码 为 Redis 设置访问密码可以对要读 写 Redis 的用户进行身份验证。没有密码的用户可以登录 Redis 但无法访问。 1)、密码设置 访问密码的设置位置在 redis.conf 配置文件中。默认是被注释掉的没有密码。 没有通过密码登录的用户无法读/写 Redis 。 2)、使用密码 对于密码的使用有两种方式登录时未使用密码则访问时先输入密码登录时直接使用密码登录访问时无需再输入密码。 A、 登录时未使用密码 B、 登录时使用密码 C、 退出时使用密码 3)、注意 为了方便后面的学习我们这里就 不设置访问密码了直接将其 注释掉 即可。 ⭐️ (2.2.4)、禁止 / 重命名命令 后面要学习两个非常危险的命令flushal 与 flushdb 。 它们都是用于直接删除整个 Redis 数据库的。若让用户可以随便使用它们可能会危及数据安全。Redis 可以通过修改配置文件来禁止使用这些命令或重命名这些命令。以下配置 禁用了 flushall 与 flushdb 命令。 当然在学习过程中暂时不禁用它们。 ⭐️ (2.2.5)、启动 Redis 当然若要使客户端能够连接 Redis则必须开启服务端的 Redis 。 2.3 Redis 客户端分类 Redis 客户端也像 MySQL 客户端一样有多种类型命令行客户端、图形界面客户端、 Java代码客户端。 ⭐️ (2.3.1)、命令行客户端 Redis 提供了基本的命令行客户端。打开命令行客户端的命令为 redis-cli 。 -h 指定要连接的 Redis 服务器的 IP 。-p 指定要连接的 Redis 的 端口号。 若连接的是本机Redis 且端口号没有改变保持默认的 6379 则 -h 与 -p 选项可以省略不写。 ⭐️ (2.3.2)、图形界面客户端 1)、Redis Desktop Manager Redis 的图形界面客户端很多 其中较出名的是 Redis Desktop Manager 的客户端。 不过该软件原来是免费软件 从 0.8.8 版本 后变为了商业化收费软件。官网为 https://resp.app/原来是 http://redisdesktop.com 。 2)、RedisPlus RedisPlus 是为 Redis 可视化管理开发的一款开源免费的桌面客户端软件支持 Windows 、Linux 、 Mac 三大系统平台 RedisPlus 提供更加高效、方便、快捷的使用体验有着更加现代化的用户界面风格。RedisPlus的官网地址为 https://gitee.com/MaxBill/RedisPlus 。 百度网盘链接https://pan.baidu.com/s/1xnmm4TMuNd8eqslJ0rRm9A?pwde316 提取码e316 ⭐️ (2.3.3)、Java 代码客户端 所谓 Java 代码客户端就是一套操作 Redis 的 API 其作用就像 JDBC 一样所以 Java 代码客户端其实就是一个或多个 Jar 包提供了对 Redis 的操作接口。对 Redis 操作的 API 很多 例如 jdbc-redis 、 jredis 等 但最常用也是最有名的是 Jedis 。 2.4 Redis 配置文件详解 Redis 的核心配置文件 redis.conf 在安装根目录下默认包含 2000 多行。 这些内容根据功能被划分为了很多部分。下面将一些重要部分进行介绍。 ⭐️ (2.4.1)、基础说明 ⭐️ (2.4.2)、includes ⭐️ (2.4.3)、modules ⭐️ (2.4.4)、network ⭐️ (2.4.5)、general ⭐️ (2.4.6)、security ⭐️ (2.4.7)、clients ⭐️ (2.4.8)、memory management ⭐️ (2.4.9)、threaded I/O 三、Redis 命令 四、Redis 持久化 五、Redis 主从集群 六、Redis 分布式系统 七、Redis 缓存 八、Lua脚本详解 九、分布式锁
http://www.zqtcl.cn/news/527455/

相关文章:

  • 广告支持模式的网站二级域名做网站域名
  • 空间 两个网站购物网站建设图标大全
  • 17.zwd一起做网站广州网站制作费用
  • 如何选择网站建设公司网站开发公司vue框架
  • 网站建设设计外包公司360个人网站建设
  • 什么网站专做店铺公司注销的网站备案
  • 不属于c2c网站的是带货视频怎么制作教程
  • 3g小说网站怎么自己用手机做网站
  • 广告行业包括网站建设吗关键词优化排名易下拉系统
  • 皖icp网站建设地方汽车网站模板购买
  • 在哪个网站做科目一考试题域名多少钱一年
  • 红孩子母婴网站开发背景建网站可行性分析
  • 北京 网站设计飞沐商城网站技术方案
  • 大连网站建设价格低怎么加入网站做微商城
  • 惠山网页制作北京优化推广
  • 武威做网站网站流量分析怎么做
  • 用动态和静态设计一个网站cname wordpress
  • php装修门户网站源码PHP是做网站最好的
  • 莆田哪里有网站开发北京大企业公司排名
  • 网站建设运营的成本丰宁县有做网站的吗
  • 网站建设如何上传文件中小企业网站建设好么
  • 安徽建设部网站国际网站 建设
  • 沈阳开发网站小程序名称大全
  • 做网站大概价格西安做网站电话
  • 前端做微网站台州做网站哪家公司好
  • 电信改公网ip可以做网站吗销售平台建设方案
  • 免费的公司网站怎么做网站建设招聘需求
  • 徐州金桥建设监理有限公司网站那个网站做系统好
  • 浙江网站制作做一个自我介绍的网页
  • 郑州做网站公司有多少网站建设需要自备什么