实验目的
- 熟悉并掌握NoSQL数据库操作常用的shell命令
- 学会安装并使用NoSQL数据库
实验环境
- 操作系统: CentOS 8
- Hadoop版本: 3.2.2
- Redis版本: 6.2.7
实验步骤
1. 快速安装Redis
-
为了避免安装到旧版 Redis 的问题,我们直接使用源码编译安装 Redis,首先你需要获取并安装 make 等一系列构建工具:
yum update yum -y install gcc-c++ yum -y install make
出现错误
问题解决文章https://blog.csdn.net/weixin_56483756/article/details/124185212问题解决之后重新执行命令,
-
去Redis官网复制最新的Redis下载链接,如图右键点击下载链接,选择复制链接,然后在虚拟机上粘贴下载
# 我需要下载到/opt目录,进入/opt目录 cd /opt wget https://download.redis.io/releases/redis-6.2.7.tar.gz
-
解压并重命名
tar -zxvf redis-6.2.7.tar.gz -C /app cd /app mv redis-6.2.7 redis
-
进入redis目录,编译并进行安装redis
cd redis # 注意观察编译消息,最后不应该产生任何错误(`Error`) make # 注意观察编译消息,最后不应该产生任何错误(`Error`) make install
-
启动 Redis 服务器,注意通过日志确认 Redis 顺利启动
redis-server redis.conf
除了上述的启动 Redis 服务器方式,还可以通过 Redis 默认的配置在后台启动它(常用启动方式):redis-server &
-
进入redis脚本控制台
在安装完redis并启动redis-server之后,可以使用命令
redis-cli
命令进入控制台与redis进行交互
退出控制台使用exit
命令 -
关闭服务器
进入Redis控制台之后输入shutdown命令即可关闭redis服务
2. Redis数据结构简介
Redis的五种数据结构: 字符串(STRING)、列表(LIST)、集合(SET)、哈希(HASH)、有序集合(ZSET)。他们存储的值如下:
结构类型 | 存储的值 |
---|---|
STRING | 字符串、整数或浮点数 |
LIST | 一个链表,上面的每个节点都是一个字符串 |
SET | 包含若干个字符串的无序集合,且集合中的元素都是唯一的 |
HASH | 包含键值对的无序散列表 |
ZSET | 成员中的字符串与分值的有序映射,其排序由分值决定 |
- 字符串
STRING 拥有一些和其他键值存储相似的命令,比如 GET(获取值),SET(设置值),DEL(删除值)等
(1) SET 命令的第一个参数是键(Key),第二个参数是值(Value)
(2) 尝试获取不存在的键时会得到一个 nil - 列表
Redis 中的列表是一个“链表”,这和大多数编程语言相似。所以他们的操作也十分相似:
(1)LPUSH
命令可用于将元素推入列表的左侧
(2)RPUSH
命令可将元素推入列表的右侧
(3)LPOP
和RPOP
就分别从列表的左侧和右侧弹出元素
(4)LINDEX
可以获取指定位置上的元素
(5)LRANGE
可以获取指定范围的全部元素
- 集合
集合的唯一性就是与列表的区别,即集合中的元素唯一;由于集合的无序性,所以只能通过统一的SADD
命令将元素添加到集合中,SREM
命令将元素从集合中移除,还可以通过:
(1)SMEMBERS
命令获取到集合中的所有元素
(2)SISMEMBER
命令来判断一个元素是否已存在在集合中
- 哈希
哈希可以存储多个键值对之间的映射。和字符串一样,哈希存储的值既可以是字符串又可以是数字值,并且可以对数字值进行自增/自减操作。
(1)hset
用于插入元素
- 第一个参数为该哈希的键名,如果该哈希不存在,则创建一个
- 第二个参数为哈希中的域名
如果不存在,则创建该域,并与第三个参数的值进行映射
如果存在,则使用第三个参数更新该域的值
- 第三个参数为哈希中的值
(2)hgetall
会获取到该哈希的所有域-值对
(3)hget
用于获取哈希中的某一个域
(4)hdel
用户删除哈希中的某一个域
- 有序集合
只是有序集合的键被称为成员(member),每个成员都是唯一的,有序集合的值则被称为分值(score),这个分值必须为浮点数。所以有序集合既可以通过成员访问元素,也可以通过分值来排序元素。
(1)ZADD
命令将带有指定分值的成员添加到有序集合中
(2)ZRANGE
命令根据分值有序排列后的集合获取到指定范围的元素
(3)ZRANGEBYSCORE
命令获取指定分值范围内的元素
(4)ZREM
命令从有序集合中删除指定成员