粗糙版学习笔记一 - Redis基础篇

Reids简介

Redis官网翻译介绍如下

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

Redis的诞生

Redis之父antirez,了不起。

为什么叫Redis?

Remote Dictionary Service KV - 远程字典服务

NoSQL与SQL的区别

传统关系型数据库与非关系型数据库的区别

Non-relational

not only sql

关系型数据库特点

  1. 存储数据结构基于表格(table),基于行的结构存储的,是二维的
  2. 结构化数据,固定的模式(schema),表结构一旦创建,存储的数据都得适应其结构
  3. 表与表之间存在关联关系的
  4. 支持SQL,结构化查询语言
  5. 支持事务,ACID - 酸,通过事务,可以严格控制数据的一致性

使用关系型数据库的一些限制

  1. 只能向上扩容,并且得通过一些特定的技术手段实现,譬如分库分表
  2. 表结构修改麻烦
  3. 高并发的场景下,磁盘的读写压力增大

非关系型数据库特点

  1. 存储的数据为非结构化的
  2. 表与表之间没有关联,扩展性强
  3. 没有事务的特性,BASE - 碱
  4. 数据没有存储在磁盘,支持海量数据存储和高并发的操作
  5. 支持分布式,实现水平扩容,分片的存储

有哪些非关系型数据库,点这里查看

TiDB结合了关系和非关系??

TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。 - 《https://pingcap.com/docs-cn/v3.0/》

Redis的特性

为什么要用Redis?

  1. 高吞吐量,官方给我出的数据是每秒十万次
  2. 丰富的数据类型
  3. 相比hashmap,支持分布式,应用共享
  4. 提供了丰富的特性,比如:持久化机制、过期策略…
  5. 支持多种编程语言操作的客户端
  6. 高可用和扩容的集群策略,譬如:哨兵、cluster…

Redis的安装和配置(单机版)

由于最近笔记本要重装系统,把vmware卸载了,所以用Window版 Redis示例(Liunx中安装Reids点这里

1. 下载Redis

之前https://redis.io/download官网我记得有windows版的链接地址,现在竟然找不到了。

github下载地址:https://github.com/microsoftarchive/redis/releases

2. 安装

linux环境下,安装redis还需安装gcc依赖和编译的过程。windows环境就不讲究了,我偷懒直接用了Redis-x64-3.2.100.msi安装版,其实与zip版没有啥本质区别。

3. 配置文件

略,windows环境为了方便学习,也无需设置后台启动,ip绑定了,如果喜欢可以去安装目录或者解压目录中redis.windows.conf文件设置个访问密码。

requirepass yourpassword

4. 服务启动
到安装目录或者解压目录中执行redis-server.exe即可启动redis server,默认指定的配置文件就是redis.windows.conf,如图:

在这里插入图片描述

服务启动成功后,通过redis-cli.exe即可进入客户端,进行命令操作。

通过RedisDesktopManager工具可以直观的看到,redis默认有16个库(0-15),可以在配置文件中修改,默认使用的第一个db0:

databases 16

因为没有完全隔离,不像数据库的 database,不适合把不同的库分配给不同的业务 使用。

Redis 是字典结构的存储方式,采用 key-value 存储。key 和 value 的最大长度限制 是 512M(来自官网 https://redis.io/topics/data-types-intro/)。

键的基本操作,命令参考:http://redisdoc.com/index.html

Redis的数据类型

官网给出了8种介绍,点这里

每种数据类型的基本操作和原理不做过多记录了,理解为主,还有一些源码设计上的骚操作,了解下就够了。

常用的五种数据结构:

string、hashs、lists、sets、sorted sets

Redis的应用场景

  1. 缓存 - 提升热数据的访问速度
  2. 共享数据 - 如session共享
  3. 全局ID - 分布式全局ID的生成,INT 类型,INCRBY,利用原子性
  4. 分布式锁 - STRING 类型 setnx 方法
  5. 在线用户数统计和计数器 - 通过INCRBY
  6. 队列、栈 - List的特性
  7. 消息队列
  8. 服务注册与发现 - dubbo支持redis作为注册中心
  9. 购物车 - hash结构的数据存储
  10. 用户消息时间线 - 这是哪个??
  11. 抽奖 - Set特性
  12. 点赞、签到、打卡
  13. 商品打标签
  14. 多条件列表筛选 - 电商查询、租房查询等
  15. 排行榜 - sorted sets
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值