Redis安装

1. 什么是redis

redisnosql,key-value数据结构,非关系型,可持久化,支持分布式,实现缓存的内存数据库.

2.详细介绍

nosql: not only structrued query language,不仅结构化查询语言,指的是操作redis的命令,统称为nosql,就像操作mysql数据库的语言叫sql.
key-value: redis处理的是非结构化数据.
结构化数据: 关系型数据库如: mysql, oracle表格数据都是结构化,有规律可循,有结构可做.
非结构化数据": redis/mongDB/hadoop都是没有整体结构,没有规律.长江的非结构化数据页面系统日志.
非关系型: 由于非结构化数据特点,无法实现数据与数据之间的关系.

redis处理非结构化数据,存储数据格式不是表格是key-value的内存结构,操作redis的语言叫做nosql,不能体现数据间关系,所以叫做非关系型

内存运行: redis进程基于内存运行,数据存放到内存中.
特点: 读写速度快,断电丢失数据.
可持久化: redis运行时虽然数据存储在内存中,为了防止断电丢失数据,提供了可以将内存数据输出保存在磁盘的方式(rdb aof),一旦出现丢失内存数据时,可以在启动redis时,将磁盘持久化数据重新加载到内存.利用持久化的能力,redis很容易解决容灾问题.降低了使用redis实现缓存功能时-------雪崩的出现
持久化: 将数据存储在磁盘中.
雪崩: 与缓存逻辑有关

redis的内存逻辑,导致断电丢失,缓存数据丢失,就会瞬间造成系统高并发涌入数据库.数据库有可能无法承受瞬间的并发访问,导致宕机,系统崩溃-----缓存雪崩
redis的持久层能力,降低缓存出现雪崩的概率

分布式: 分布式结构,有效的提升内存容量上限.

3.安装步骤

  1. 获取安装包
  2. 将获取来的安装包放在/home/resources文件夹下,在自己定义文件下安装解压包
cd /home/自己定义文件名
cp /home/resources/redis安装包+后缀 ./
  1. 解压安装tar包
        还是在自定义文件名下,执行tar命令 -xzvf
tar -xzvf redis安装包+后缀
  1. 进入redis根目录执行编译和编译安装
cd redis安装包
make && make install

在这里插入图片描述
最后看到这个就说明成功了

4. 服务端和客户端运行代码

redis访问使用的结构,非常类似数据库有服务端,客户端.

  1. 服务端脚本
        进行解压之后,执行make编译时候产生了操作redis的脚本命令
开启redis服务端
redis-server

执行完毕后,日志最后一句话: The server is now ready to accept connections on port 6379
2. 客户端脚本

开启redis客户端
redis-cli

如果什么都不加则表示连接本地redis服务端ip 127.0.0.1 端口为6379
-h 写redis的ip地址
-p 写redis服务器所占用的端口

测试使用默认服务端时不要使用-h 登录服务端拒绝访问,服务端开启了保护默认

5. redis五种数据结构和命令

  1. redis的基础命令
get key
	获取key的value值
set key value
	设置key和value的值
keys * 
	表示客户端查看当前redis服务端内存中所有的数据key值.
exists key值 
	表示要看出的对应的key值数据是否在redis内存中存在.有则返回:1 没有则:0
expire/pexpire key time
	设置`秒/毫秒`当过了所设置的时间则就将key值所删除,`set没有写则是永久数据`
ttl/pttl key
	显示剩余的`秒/毫秒`
del key 
	对指定的key进行删除操作
save
	redis支持持久化,将内存数据,刷出到持久化文件,内存数据保存在磁盘上.
	redis启动时自动加载保存的持久化文件,将数据恢复回来.
	save命令的调用,就是将内存数据刷出到持久化文件中保存.
  1. String类型数据
set key value ex/px time
	表示设置超时`秒/毫秒`
set key value nx
	表示如果没有相同key值则成功,有则添加失败
set key value xx
	表示如果有相同的key值成功,没有则失败
set incr/incrby key
	表示将该key属性的value值`自增1或者规定+多少`
set decr/dectby
	表示将该key属性的value值`减少1或者规定-多少`
  1. hash类型
    hash在redis中底层是双层map形式存在,key-value是map,value在hash结构中又是一个map.所以他可以对应对象的数据结构.
    在这里插入图片描述
hset key field value
	key为key值,field为第二层key值 value为第二次的value
hget key field
	读取某个key的某个属性的value值
hkeys key
	读取key值中的第二层key值属性
hvals key
	读取key值中的第二层value值
hdel key fild
	删除key值中第二层中的key值
  1. List双向链表
    list底层双向链表,可以从头和尾部处理数据,实现队列的结构
    在这里插入图片描述
lpush/rpush key value
	lpush从头部插入数据
	rpush从尾部插入数据
lrange key start end
	可以对一个list链表中的元素范围内的数据读取返回. 
	lrange key 起始下标 结束下标.
	如果查找所有的 可以 0 -1
lset key index 修改值
	对list的某个下标为index的元素值,做修改.
rpop/lpop key
	rpop从链表的尾部删除元素,并且将删除的元素值返回
	lpop从链表的头部删除元素,将元素值返回(remove)
  1. set集合
    可以将不同,不重复的元素值,放到一个没有顺序概念的集合中,实现value数据在redis的管理
sadd key member
	增加元素到集合
srandmember key [count]
	随机在key对应set集合中选取count个元素
srem key 元素值
	可以对集合中某个元素进行去除的操作,当删除成功,返回1,删除失败返回0
  1. zset有序集合
    在set基础之上,实现了排序的方式,元素也是不可以重复,就是在元素的数据上绑定了一个 评分的数据(实际应用场景中,评分可以不同业务意义,例如点击率,例如播放量,例如投票数量等)
    在这里插入图片描述
zadd key score member
	将一个元素绑定一个分数后,写入有序集合中
zrank/range member [start] [end]
	在有序集合中体现排序
zrangebyscore score start end
	在 start和end之间所有的元素排序 

6. 配置文件

redis提供了一个配置文件模板,在redis根目录redis.conf

6.1 配置文件模板

使用vim redis.conf进入.
61行:将bind 127.0.0.1注释掉,防止限制登录客户端.如果redis服务端只允许使用127.0.0.1登录连接访问的客户端,至允许本地客户端登录.
在这里插入图片描述
80行: 将protected-node 安全模式关闭,redis默认开启安全模式,在安全模式下,即使远程客户端能够连接到redis,也无法操作redis执行各种安全相关要求的命令.
在这里插入图片描述
84行:端口配置,redis默认6379作为redis服务端一个表示内容.
在这里插入图片描述
128行:后台启动开启,默认配置中redis启动后占用控制台显示,开启后将会后台运行,不会在控制台显示处理
在这里插入图片描述
150行:pid文件,在同一个服务器上运行的不同redis服务端pid不一样,不能让他们公用一个pid文件.
在这里插入图片描述
163行:指定日志文件名称.redis启动后默认在目录下生成6379redis.log文件.对应着与端口相同的日志文件
在这里插入图片描述
237行:持久化文件dump对应redis端口命令,在同一个服务器上启动多个redis服务端进程,不能有相互冲突的东西存在.端口号,pid文件,log日志,dump持久化数据.
在这里插入图片描述

启动/关闭redis服务端

#开启
redis-server redis.conf
#关闭方法1
redis-cli shutdown
#关闭方法2 查看进程pid然后kill
ps -ef|grep redis
kill Pid
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值