【Redis 学习笔记】1、Redis 简介

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 【Redis 学习笔记】1、Redis 简介

前言

说到 Redis,大家可能第一反应就是它是当前最受欢迎的 NoSQL 数据库之一。那么在正式介绍 Redis 之前,我们先来看看关于 NoSQL 的一些相关信息,比如它是什么,又比如它的一些特点以及它的一些分类。那么我们接下来就从以上三个方面来对 NoSQL 的相关历史做一个简单介绍,然后再去看看 Redis 的相关知识。


什么是 NoSQL

NoSQL = Not Only SQL


泛指非关系型数据库,随 Web2.0 的诞生,传统关系型数据库难以应对 Web2.0,尤其是超大规模的高并发社区。NoSQL 在当今大数据程序下较为流行。


NoSQL 特点

高扩展性(数据间无关系,容易扩展)

大数据量高性能(官方给定数据,写操作 8w次/s,读操作 11w次/s)

数据类型多样(无需事先设计数据库,随取随用)

高可用

传统 RDBMS 和 NoSQL

传统 RDBMS

结构化组织

SQL

数据和关系均存在单独的表中

操作数据定义语言

严格的一致性

基础的事务

……

NoSQL

不仅仅是数据

无固定查询语言

键值对存储,列存储、文档存储、图形数据库

最终一直性

CAP 定理和 BASE

高性能,高可用,高可拓

……

NoSQL 的四大分类

NoSQL 主要可以分为如下四大类,然后关于各类的实例、应用场景、数据模型以及各个类型的一些优缺点,可以参见下面的表。


KV 键值对

文档型数据库(bson & json)

列存储数据库

图关系数据库

分类 实例 应用场景 数据模型 优点 缺点

键值对(key-value) Redis、Voldemort 内存缓存,用于处理大量数据的高访问负载,也可用于日志系统等 key 指向 value 的键值对,通常是用 HashTable 来实现 查找速度快 数据无结构化,通常只被当做字符串或二进制数据

列存储数据库 HBase 分布式文件系统 以列簇式存储,讲同一列数据存储在一起 1. 查找速度快

2. 扩展性强

3. 更容易进行分布式扩展 功能相对局限

文档型数据库 MongoDb Web 应用,类似于 Key-Value key-value 对应的键值对,value 为结构化的数据 1. 数据结构要求宽松

2. 表结构可变,无需像关系型数据库一样预先定义表结构 查询性能低,且查询语法不统一

图形数据库(Graph) Neo4j、InfoGrid 社交网络、推荐系统等 图结构 可以利用图结构相关算法,如最短路径寻址、N度关系查找等 许多时候需要对整个图进行计算才能得到最终结果,效率不高;而且做分布式集群较困难

什么是 Redis

以上对 NoSQL 做了一个简介之后,接下来就轮到我们今天的主角 - Redis 了。接下来,我将从相关简介,如何安装以及常用基本操作几个方面来对 Redis 进行介绍。


Redis 特点

Redis 是一个高性能的开源的 key-value 数据库,底层由 C 语言实现,相比于其他同类型产品,有如下特点。


支持数据持久化,可以将内存中的数据保存在磁盘中,重启时再次加载使用即可;

不仅支持 key-value 类型的数据,同时还支持 list、set、hash、zset 等数据结构的存储;

支持 master-slave 模式的数据备份;

Redis 优势

高性能;

支持的数据类型丰富;

原子性,要么成功执行,要么失败完全不执行。单个操作时原子性的,多个操作也支持事务,通过 MULTI 和 EXEC 指令封装;

支持其他丰富的特性,如 publish/subscribe,通知,key 过期等;

Redis 的应用场景

内存存储、持久化

高效率,可以用于高速缓存

发布订阅系统

地图信息分析

计时器、计数器

任务队列

数据过期处理

应用排行榜

……

Redis 和其他 key - value 数据库的不同

Redis 的数据结构更加复杂且提供对他们的原子性操作,而且基于基本数据结构的同时也对程序员透明,无需进行额外抽象;

Redis 运行在内存中但是可以持久化到硬盘,所以在对不同数据集进行高速读写是需要权衡内存大小,数据量不能大于硬件内存;

Redis 安装

Windows 下安装

去下载安装包,https://github.com/tporadowski/redis/releases,支持 32 和 64 位,按需下载即可;

解压缩下载后的压缩包,并存在你自己指定的目录;


image.png

  1. 打开终端,然后切换到 Redis 目录,运行如下命令即可:
./redis-server.exe

image.png

  1. 打开另一个窗口,在 Redis 目录下运行另一个 Redis,然后进行设置和取出键值对测试;
./redis-cli.exe
# 设置键值对
set key "cunyu"
# 取出键值对
get
• 1
• 2
• 3
• 4
• 5

image.png

Linux 下安装

  1. 下载最新版本安装包,http://redis.cn/download
  2. 使用如下命令解压安装包到你需要存储的位置,然后进行编译
# 解压
tar -zxvf redis-6.0.6.tar.gz
# 进入文件夹
cd redis-6.0.6
# 编译
make

image.pngimage.pngimage.png注意

当在控制台中获取中文键值时,可能会出现乱码的情况,此时,可以通过在启动客户端时加入 --raw 参数即可解决;


# 可能乱码的启动方式

./redis-cli

# 解决乱码的启动方式

./redis-cli --raw


基本操作及常识

选择对应数据库

# redis 默认提供 16 个数据库,默认使用 0 号数据库

select num(数据库编号)


获取数据库名

get name


查看数据库大小

DBSIZE


查看数据库所有 key

keys *


清空数据库

# 清空所有数据库

FLUSHALL


# 清空当前数据库

flush db


查看某 key 是否存在

EXISTS key


移除当前 key

move key value


设置 key 过期时间

# time 时间单位为秒

EXPIRE key time


查看当前 key 的类型

type key


总结

OK,以上就是今天的所有内容了。主要介绍了 NoSQL 的相关知识,接着引入 Redis 的特点、优点、应用场景、和其他同类型数据库的区别、然后介绍 Redis 的安装以及安装过程中需要注意的事项,最后则是对 Redis 在日常使用时使用最频繁的一些命令进行了说明。


最后,原创不宜,如果你觉得本文对你有所帮助,还请各位点赞关注一波,也算是对我的一种鼓励吧,让我能够继续坚持!



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5月前
|
存储 NoSQL Linux
小白带你学习linux的Redis基础(三十二)
小白带你学习linux的Redis基础(三十二)
76 0
|
4月前
|
存储 NoSQL Redis
redis源码学习
redis源码学习
|
5月前
|
存储 NoSQL Ubuntu
在Ubuntu上安装Redis并学习使用get、set和keys命令
在Ubuntu上安装Redis并学习使用get、set和keys命令
|
6月前
|
缓存 NoSQL Redis
【Redis 系列】redis 学习十六,redis 字典(map) 及其核心编码结构
【Redis 系列】redis 学习十六,redis 字典(map) 及其核心编码结构
|
6月前
|
NoSQL 算法 Redis
【Redis 系列】redis 学习十四,sorted_set 初步探究梳理
【Redis 系列】redis 学习十四,sorted_set 初步探究梳理
|
6月前
|
存储 NoSQL Redis
【Redis 系列】redis 学习十五,redis sds数据结构和底层设计原理
【Redis 系列】redis 学习十五,redis sds数据结构和底层设计原理
|
5月前
|
存储 NoSQL Redis
Redis 简介 + Python 操作发布订阅
Redis 简介 + Python 操作发布订阅
|
4月前
|
NoSQL 中间件 API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(下)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
86 2
|
4月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(上)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
75 0
|
6月前
|
存储 NoSQL 算法
[Redis 系列]redis 学习 17,redis 存储结构原理 1
[Redis 系列]redis 学习 17,redis 存储结构原理 1