redis基础
# redis 介绍
Redis 是一个高性能的key-value
数据格式的内存缓存,NoSQL
数据库。NoSQL
:not only sql
,泛指非关系型数据库。
关系型数据库有:MySQL、Oracle、SQL Server、Sqlite
非关系型数据库:redis、hadoop、mangoDB
- 没有数据表的概念,不用的 nosql 数据库存放数据位置不同
- nosql 数据库没有通用操作语言
- 基本不支持事务,redis 支持简单事务
它的存储类型有:
- string 字符串
- list 链表
- set 集合
- zset (sorted set 有序集合)
- hash 哈希类型
这些数据类型都支持
push/pop、add/remove
及取交集并集和差集以及丰富的操作。而且这些操作是原子性的。在此基础上,redis 支持各种不同方式的排序。与memcached
一样,为了保证效率,数据都是缓存在内存中。区别的是redis
会周期性的把更新的数据写入磁盘或者把修改的操作写入追加的记录文件,并且在此基础上实现了master-slave
(主从)同步。redis 是一款基于CS
架构的数据库,所以 redis 有客户端,也有服务端。其中,客户端可以使用python
等编程语言,也可以使用终端命令行工具。
# 优点
- 异常快速:redis 是非常快的,每秒可以执行大约 110000 设置操作,81000 个/秒的读取操作
- 支持丰富的数据类型
- 原子性:redis 的所有操作都是原子性的,意思就是要么成功执行,要么失败完全不执行。当个操作时原子性的。多个操作也支持事务,即原子性,通过
MULTI
和EXEC
指令包起来。 - redis 是一个多功能实用工具,可以再很多如,消息队列中实用(redis 原生支持发布/订阅)
- 单线程特性,秒杀系统,基于 redis 是单线程特征,防止出现数据库“爆破”
# 典型应用
# 一、性能
redis 中缓存热点数据,能够保护数据库,提高查询效率。当我们碰到需要执行耗时特别久,且结果不频繁变动的 SQL,就特别适合将运行结果放入缓存,这样,后面的请求就去缓存中读取,使得请求能够迅速响应。
# 二、并发
在大量并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用 redis 做一个缓冲的操作,让请求先访问到 redis,而不是直接访问数据库。
# 安装 redis
- 系统:Ubuntu
sudo apt-get update
sudo apt-get install redis-server
1
2
2
MacOS
brew install redis-cli
1windows
直接去找 redis 的客户端 exe 下载安装就完了。
启动 redis
# 进入到redis安装目录
# linux
# 启动
redis-server # 服务端
# 查看是否正在运行
redis-cli # 客户端
# 将会打开一个redis提示符
redis 127.0.0.1:6379>
# 输入 ping
应答:PONG # 说明成功地在计算机上安装了redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
简单案例
➜ ~ redis-cli
127.0.0.1:6379> set name wujie
OK
127.0.0.1:6379> get name
"wujie"
127.0.0.1:6379>
1
2
3
4
5
6
2
3
4
5
6
编辑 (opens new window)
上次更新: 2021/10/23, 15:40:38