# Redis学习笔记 **Repository Path**: my_1622/redis-study-notes ## Basic Information - **Project Name**: Redis学习笔记 - **Description**: Redis学习笔记 - **Primary Language**: 其他 - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-30 - **Last Updated**: 2021-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Redis学习笔记 # Redis ## 1. NoSQL的引言 **NoSQL**(`Not Only SQL` ),意即**不仅仅是SQL**, 泛指非关系型的数据库。Nosql这个技术门类,早期就有人提出,发展至2009年趋势越发高涨。 ## 2.为什么是NoSQl 随着互联网网站的兴起,传统的关系数据库在应付动态网站,特别是超大规模和高并发的纯动态网站已经显得力不从心,暴露了很多难以克服的问题。如`商城网站中对商品数据频繁查询`、`对热搜商品的排行统计`、`订单超时问题`、以及微信朋友圈(音频,视频)存储等相关使用传统的关系型数据库实现就显得非常复杂,虽然能实现相应功能但是在性能上却不是那么乐观。nosql这个技术门类的出现,更好的解决了这些问题,它告诉了世界不仅仅是sql。 ## 3.NoSql的四大分类 ### 3.1 键值(Key-Value)存储数据库 ```bash # 1.说明: - 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。 # 2.特点 - Key/value模型对于IT系统来说的优势在于简单、易部署。 - 但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。 # 3.相关产品 - Tokyo Cabinet/Tyrant, - Redis - SSDB - Voldemort - Oracle BDB ``` ### 3.2 列存储数据库 ```bash # 1.说明 - 这部分数据库通常是用来应对分布式存储的海量数据。 # 2.特点 - 键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。 # 3.相关产品 - Cassandra、HBase、Riak. ``` ### 3.3 文档型数据库 ```bash # 1.说明 - 文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高 # 2.特点 - 以文档形式存储 # 3.相关产品 - MongoDB、CouchDB、 MongoDb(4.x). 国内也有文档型数据库SequoiaDB,已经开源。 ``` ### 3.4 图形(Graph)数据库 ```bash # 1.说明 - 图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。 - NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。 # 2.特点 # 3.相关产品 - Neo4J、InfoGrid、 Infinite Graph、 ``` ## 4.NoSql应用场景 - 数据模型比较简单 - 需要灵活性更强的IT系统 - 对数据库性能要求较高 - 不需要高度的数据一致性 ## 5.什么是Redis ![](https://img-blog.csdnimg.cn/20201105185800209.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU5MTk4MA==,size_16,color_FFFFFF,t_70#pic_center) ## 6.Redis特点 - Redis是一个高性能key/value内存型数据库 - Redis支持丰富的数据类型 - Redis支持持久化 - Redis单线程,单进程 ## 7.Redis安装 ```bash PS C:\Users\Administrator.SKY-20200806PWV> docker pull redis Using default tag: latest latest: Pulling from library/redis f7ec5a41d630: Already exists a36224ca8bbd: Pull complete 7630ad34dcb2: Pull complete c6d2a5632e6c: Pull complete f1957981f3c1: Pull complete 42642d666cff: Pull complete Digest: sha256:e10f55f92478715698a2cef97c2bbdc48df2a05081edd884938903aa60df6396 Status: Downloaded newer image for redis:latest docker.io/library/redis:latest ``` 官网下载配置文件 [配置文件]: http://download.redis.io/redis-stable/redis.conf "redis.config" - 检查配置文件是否设置了`daemonize yes`,如果是,就要改为`daemonize no` 因为该选项让redis成为在后台运行的守护进程而docker容器必须要有一个前台进程才能留存否则容器会自动退出 ![image-20201012152833625](https://img-blog.csdnimg.cn/img_convert/e2e8b49919fdc4f806aa4329f1a8a570.png) ```bash # docker run docker run -v /f/Docker/redis-config:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf # 挂载到/f/Docker/redis-config文件夹下 PS C:\Users\Administrator.SKY-20200806PWV> docker exec -it myredis /bin/bash root@75dc3b8cf8e0:/data# redis-cli 127.0.0.1:6379> config get daemonize 1) "daemonize" 2) "no" ``` ## 8.Redis数据库相关指令 ## 9.持久化机制 ## 10.java操作Redis ## 11.SpringBoot整合Redis ## 12.Redis主从副职 ## 13.Redis哨兵机制 ## 14.Redis集群 ## 15.Redis实现分布式Session管理 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)