侧边栏壁纸
博主头像
清如许博主等级

努力成长为一颗大树,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找

  • 累计撰写 58 篇文章
  • 累计创建 36 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

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

清如许
2020-04-25 / 0 评论 / 0 点赞 / 281 阅读 / 4,552 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-08-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

## 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
进行启动,如图所示:
在这里插入图片描述

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.

在这里插入图片描述

0

评论区