Redis数据库的介绍、安装、数据结构、常用命令

1、 redis是什么呢?

redis是非关系型数据库(nosql),基于内存读写的数据库,采用key-value的方式存储数据
nosql: not noly sql ,没有表的SQL

在目前的企业开发中会用关系型数据库(Oracale+MySQL)+非关系型数据库(Redis 、MongoDB、Memcache)共同开发项目

为什么使用NoSQL

现在存在数据格式非常多样,不适合应用表格进行存储。
表格数据称之为 结构化数据
非表格数据称之为 半结构化 (kv json) 非结构化数据 音频 视频

Redis是基于内存读写的数据库,
硬盘读取速度 大约几百M
内存读取速度 大约 上千M
所以Redis相对来说是要比关系型数据库要快很多

Redis的应用场景:查询读取操作非常频繁的业务
例如:缓存

2、Redis的下载安装

Redis可从
https://redis.io/download
官网进行下载,有windows版和linux版,
都是下载直接解压就可使用
在这里插入图片描述
解压后的目录如下:
在这里插入图片描述
不过需要注意的是:
在windows系统上,我们要修改redis.windows.conf这个文件,将appendonly no改为appendonly yes
因为redis是忘往内存上面存储数据的,改完这个可以使数据直接同步到硬盘上。
在这里插入图片描述
而启动的时候也不要双击redis-server.exe进行启动,因为这样启动是不能加载到redis.windows.conf这个配置文件的,
所以启动的时候我们要在redis解压的目录下进入cmd,
输入:redis-server redis.windows.conf 启动redis服务
如图所示:
在这里插入图片描述
这样就启动了Redis服务,再双击redis-cli.exe就启动了Redis的客户端

Linux系统下启动Redis服务要进到解压目录的src下,
输入./redis-server …/redis.conf
进行启动,如图所示:
在这里插入图片描述
开启AOF持久化机制,(默认是关闭):
将redis.conf文件中 appendonly 改成 yes ,自动创建appendonly.aof,该文件存储的客户端执行过增删改操作的命令

设置远程连接及密码

1.注释掉bind 127.0.0.1;在地址前面加个#;

2.设置密码,在#requirepass foobared去掉#号变requirepass foobared;foobared是密码;

3.protected-mode 设置成no;修改后是protected-mode no;

3、Redis的数据结构、常用命令

redis数据库存储数据使用的key-value
key是string类型 value的数据结构支持5个string、set、sorted_set、list、hash

value最大占用空间 1GB
redis支持的数据结构比较丰富、对不同的数据结构,还拥有不同的操作命令

set、get、del
keys * 打印所有的key

基础命令 (key value)

keys *

命令的作用:显示redis中 所有的key
keys name* name后面可以有0—多个任意字符
keys name? name后面必须只存在一个字符

exists key
判断 key是否存在 若返回 1 则存在 0 不存在

del key
作用:删除 某一个key

help 命令
帮助命令

flushall 清空所有数据库中的内容

退出 exit|quit 退出redis的服务器

Redis中值是字符串类型 (String 数字)

在这里插入图片描述
set
用于设置 一个字符串类型的 key value

get
根据key获取值

mset
一次性设置多个 key value

mget
strlen
append
getrange 截取子串
getrange name 0 3
setex 设置一个key的存活有效期 (秒) psetex 作用与 setex 一致 但是毫秒
setnx
如果当前没有这个key的话 那么 setnx等价于 set命令
如果当前存在这个key的话 那么 setnx不起作用
decr 针对数字类型 做 -1操作 另外 desr key 数字 根据数字做减法操作
incr incrby incrbyfloat

应用场景:缓存查询结果(json或者序列化) 用户访问记录 例如:通过记录ip-访问次数来显示ip的访问
统计粉丝数、点击次数、点赞

Redis中值是set类型在这里插入图片描述

c) List类型的数据操作的命令

在这里插入图片描述
i. lpush 栈式结构
lpush name suns[2]
lpush name xiaohei[1]
lpush name xiaowb[0]
ii. lpushx 如果操作的key不存在 则不起作用
如果操作的key存在 则等同于lpush
iii. rpush 操作的内容 等效 java List
第一个操作的元素 就放置在第一个位置
依次类推
应用场景:关注列表、消息队列

hash类型的数据操作的命令

在这里插入图片描述

zset (sorted_set)类型的数据操作的命令

在这里插入图片描述

7. Redis命令的补充部分

a) 只有set命令 可以操作 任意类型的数据

b) 注意Redis中会有数据库概念 默认存在16数据库 0 ---- 15

默认所使用的数据库 0 如果要选择使用别的数据库 select 编号

注意:不同数据库所创建的key 相互隔离 互补干扰的。通过flushall 清空的是所有数据库中的key. 清空当前的数据库 flushdb这个命令
如何该表Redis中对于数据库的支持呢?编辑 redis.conf

** expire相关命令 (促销 秒杀 手机验证码倒计时 排行榜 Cache)**
i. 在Redis创建key value 默认都是持久化的 永久保存。
ii. 可以通过expire 命令 指定 key 存活时间
expire key seconds

查看某一个key的存活时常
persist 作用 可以把 一个应用了expire命令key 再次转换持久化的key
expireat key unix 时间戳 毫秒数iii.

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清如许.

整理不易,点滴助力就是不竭动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值