目录
一,Redis简介
核心存储键值对:String,list,hash,set,zset(sort set)
二,Linux上安装redis
1.将Redis的压缩包放入客户端的存储文件夹中
解压压缩包
下载Redis运行所需要的gcc环境
进入redis的解压目录,执行命令 make
修改redis为守护进程
启动redis
测试外界是否可以连接,是什么缘由?
1.端口未开放
2.redis.conf未配置完全(运行远程连接)
三,redis的常用命令
Redis字符串(String)
Redis哈希(Hash)
Redis列表(List)
Redis集合(Set)
本篇博客主要介绍redis的核心知识,如果没有需要的内容的话可以去redis的学习网址自行学习:
https://www.w3cschool.cn/redis/
作用:提升程序运行的效率
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,
同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区学习网址:https://www.w3cschool.cn/redis/
www.redis.cn
www.redis.net.cn
Redis用途:1. 数据库 2. 缓存
集群:哨兵、主从、分片式NoSql数据库:redis,echcache,mongodb
是直接通过键值对的方式取值,数据之间不存在关系
Sql数据库:SQLserver,Oracle,MySql
通过查询表的方式获取数据
#下载
redis-5.0.0.tar.gz(linux)
Redis-x64-3.2.100.msi(window安装版)
Redis-x64-3.2.100.zip(window解压版)
yun install gcc
这也是Redis与tomcat最大的不同 tomcat并不需要
下载中途需要输入Y确定你的操作
进入解压目录 cd /redis-5.0.0
编译指令 make
检验指令 make install
耗时有点久,要耐心等待, 当出现黄色字体就差不多了
输入ll 可以看到其中有两个重要的文件 redis.conf和src
进入src也有两个重要文件 redis-cli和redis-server
然后我们看看没有进行下一步 修改为守护进程时启动redis是个什么情况
启动redis命令,在解压包目录下的src/redis-server
./src/redis-server
启动后我们发现已经不能在输入其他指令了,这样有影响我们的其他操作,所以我们要将它修改为守护进程 现在只能只能Ctr+C 终止redis运行
lsof -i:6379 查看正在使用的端口
为了防止修改出现问题,我们先将文件备份
cp redis.conf redis(目标文件).conf.bar20221030(备份的名)
修改:将daemonize no 改为 daemonize yes
然后我们可以进入快捷目录下直接去编辑redis.conf文件
但是如果没有这种快捷方式怎么办呢?而且那个需要修改的地方又太难找到了?
教大家一个小技巧
输入指令 vi redis.conf进入编辑页面,然后直接输入/(斜杠加上)需要寻找的地方存在的关键字,我们要将将daemonize no 改为 daemonize yes
(当链接工具不能直接打开文件编辑:那么需要通过 /+"查询关键字" 快速定位单词所在的位置)
那我们就直接 输入/daemon再回车即可找到对应的位置
跳转
找到了所输入的关键字,然后可以在附近查找一下所需要修改的地方,或者我们一开始输入完整的字段就行了
点击insert开始编辑,修改为yes 再esc退出 输入:wq 为保存 :q!为不保存
在redis解压包的目录下执行以下指令
启动redis
./redis-server ../redis.conf测试redis启动是否成功
./redis-cli
pingselect (index)代表可以切换数据库之类的操作
#开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
#跟新防火墙规则
firewall-cmd --reload
#防火墙列表
firewall-cmd --zone=public --list-ports
#防火墙状态
systemctl status firewalld
#启动防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
注释:bind 127.0.0.1
vim redis.conf 进入配置文件
不需要点击insert,输入 /bind 127.0.0.1 回车(如果没有找到 bind 127.0.0.1 可以按“n”键搜索到下一个关键字)
注释掉:bind 127.0.0.1(在前面添加#号)
按esc键,进入下一步同样的操作
修改:requirepass 123456
不用insert 直接输入/requirepass回车找到下图位置,并将#号删除,输入root密码,esc键后输入 :wq 保存并退出
lsof -i:6379查看进程
kill -9 +进程ip 结束进程
./src/redis-server redis.conf 开启进程
./src/redis-cli -h 127.0.0.1 -p 6379 -a 123456
ping
注意:redis中的常用命令就是开发过程中,所有调用redis api中的方法
set key //保存
set name zs
set age 12
set sex nanget key //获取
get nametype key //查看类型
type age //string 说明type返回的是键值对存储类型,而不是值存储类型keys *或keys key //查看所有或者指定的key
keys *SETEX KEY_NAME TIMEOUT VALUE // 给键值对设置过期时间
setex zs 60 livettl key // 获取键值对剩余的存活时间
ttl zs
set name zs
查看数据
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
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开始,同时先进后出
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
# sadd key value1 [value2] #向集合添加一个或多个元素
sadd hobby lanqiu zuqiu bingpangqiu zhuoqiu# scard key #获取集合中的元素数量
scard hobby# exists key #是否存在
exists hobby
有序集合(sort set)
https://www.w3cschool.cn/redis/redis-sorted-sets.html