🎬 艳艳耶✌️:个人主页
🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》
⛺️ 越努力 ,越幸运。
1.Redis简介
1.1.什么是Redis
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区
1.2.Redis与传统数据库的区别主要
数据存储方式:Redis是基于内存的存储系统,数据存储在内存中,因此读写速度非常快。而传统数据库则是基于磁盘的存储系统,数据存储在磁盘上。虽然磁盘存储容量较大,但读写速度相对较慢。
数据结构:Redis支持多种数据类型,如字符串、哈希、列表等,因此可以灵活地存储和操作不同形式的数据。而传统数据库则需要在表结构设计时就确定好数据类型和结构,存储和操作时受限较多。
持久化方式:Redis提供了多种持久化方式,包括RDB和AOF两种方式,可以实现数据的备份和恢复。而传统数据库则通常采用关系型数据库(如MySQL)的事务ACID机制来保证数据一致性和持久化。
分布式能力:Redis通过分片和集群等方式提供了分布式能力,可以将数据分散到多个节点中进行存储和查询,提高了系统的可扩展性和可用性。而传统数据库则需要通过主从复制或者分库分表等方式来实现分布式存储。
2.Redis的安装
2.1.解压安装包
利用工具MobaXterm将资源安装包放到安装目录中,然后进入到当前安装目录中并执行以下命令进行安装
tar -zxvf redis-5.0.0.tar.gz -C /usr/local/
2.2.安装acc环境
yum install gcc
2.3.编译Redis
进入Redis目录:cd redis-5.0.0
编译:make
2.4.检查安装情况
make install
2.5.启动Redis服务
./src/redis-server redis.conf
出现以下界面时,就是安装完成了
退出命令
ctrl+c
3.配置守护线程
3.1 备份配置文件
cp redis.conf redis.conf.bak
3.2 编辑配置文件
vim redis.conf
找到daemonize配置选项,将后面的no修改为yes
点击i键进行修改,修改完成后点击Esc退出然后输入:wq保存并退出
修改后记得重启一下服务
4.连接Redis
4.1 连接
./src/redis-cli
验证是否连接成功
ping
当出现pong时说明连接成功
4.2查看端口状态
lsof -i:端口号
我们输入redis的端口号查看端口状态
lsof -i 6379
停止当前端口进程
kill -9 进程id
图中的17712就是我们的进程id
注意:在修改一些常用配置时,如果开启了服务和端口进程我们需要将端口和我们的进程停止,在修改后重新启动才可以生效
4.3 扩大客户端访问限制
找到没有被注释的bind 127.0.0.1在前面加上#注释,解除连接限制
4.4 设置Redis密码
接着,在当前文件中,找到requirepass
将前面的#删除,后面设置自己的密码
5.开放6379端口
5.1 开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
5.2 刷新防火墙规则
firewall-cmd --reload
6.连接客户端
利用命令连接客户端使用Redis
先开启服务
连接客户端
./src/redis-cli -h 127.0.0.1 -p 6379 -a 自己设置的密码
连接使用
输入ping返回pong时说明连接成功
7.常用命令
7.1.Redis字符串(String)
# set key //保存
set name zs
set age 12
set sex nan
# get key //获取
get name
# type key //查看类型
type age //string 说明type返回的是键值对存储类型,而不是值存储类型
# keys *或keys key //查看所有或者指定的key
keys *
# SETEX KEY_NAME TIMEOUT VALUE // 给键值对设置过期时间
setex zs 60 live
# ttl key // 获取键值对剩余的存活时间
ttl zs
7.2.Redis哈希(Hash)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
# hset key field1 value1 [field2 value2] #同时将多个field-value设置到哈希表key中
hset user name zs age 12 sex nv
# hget key field #获取指定的字段值
hget user age
# hdel key field #删除指定的字段值
hdel user age
# hgetall key #查询指定key的所有字段
hgetall user
# hexists key field #查询指定key中的字段是否存在
hexists user name
# hlen key #获取指定key中的长度
hlen user
7.3.Redis列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
# lpush key value1 value2 value3 #将一个或多个值插入到列表头部
lpush en a b c d e f g
# llen key #获取列表的长度
llen en
# lindex key index #根据索引获取列表中的元素
lindex en 1 #返回f,说明下标从0开始,同时先进后出
# lrange key start sop #查看指定范围内的元素
lrange en 1 3 #返回fed,说明下标从0开始,同时先进后出
7.4.Redis集合(Set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
# sadd key value1 [value2] #向集合添加一个或多个元素
sadd hobby lanqiu zuqiu bingpangqiu zhuoqiu
# scard key #获取集合中的元素数量
scard hobby
# exists key #是否存在
exists hobby
7.5.其他操作
PING:测试连接是否存活。
SELECT index:切换到指定的数据库。
FLUSHDB:删除当前数据库中的所有键。
FLUSHALL:删除所有数据库中的所有键。
SAVE:同步保存数据到硬盘。
BGSAVE:异步保存数据到硬盘。