redis 的基本介绍以及 五种 数据类型

一、redis是什么?

一句话:redis 是一个开源的、使用C语言编写的、支持网络交互,基于内存也可持久化的 key-value (非关系型)数据库

redis作者博客,有兴趣的小伙伴可以去逛一逛:http://github.com/antirez

redis 的基本介绍以及 五种 数据类型_第1张图片

二、redis的key命名规约

关于key 的命名,不要太长也不要太短,Key太长越占资源,太短可读性又很差,key 之间的单词用 :(冒号)隔开

emmmm …

一般来说,key 的命名可以这样,项目名称+表名称(mysql或者oracle 等 表名)+ 表中需要存储到redis的字段名字

比如

项目名称叫:project
mysql中用到的表名字叫 user_info
需要存储的字段为 :name
值为:java资讯

那么,结合起来就是这样
project:userInfo:name:Java资讯

一般来讲是上面这种命名方式,最主要还是看公司有没有自己的一套命名方式,要是公司没有强制要求这些,就算你 直接 这样 name:java资讯 ,也是可以的,开发前还是问一问

三、redis的 value 数据结构

redis的value 支持 5 种 数据类型

  • 字符串类型(String) 列表类型 (List)

  • 哈希类型(Hash)

  • 无序集合类型(Set)

  • 有序集合类型(Zset)

这五种类型长什么样呢?简单图解

redis 的基本介绍以及 五种 数据类型_第2张图片
下面的演示例子(key )我就不按照什么冒号分开命名了,实际上我们公司也没有这样命名,但你要知道这个命名方式,以防万一

字符串类型(String)

设置值:set+key名称+值

获取值:get key名称

redis 的基本介绍以及 五种 数据类型_第3张图片
给同一个key 设置不同的字符串,后者会覆盖前者的值

redis 的基本介绍以及 五种 数据类型_第4张图片
还可以通过字符串类型对数值进行操作,redis 自己会将字符串转为数字

incr : 自增1

redis 的基本介绍以及 五种 数据类型_第5张图片
incrby : 原数字+几

redis 的基本介绍以及 五种 数据类型_第6张图片
3+2 5+9 14+1

同理:
decr :减 1
decrby : 原数字 - 几

redis 的基本介绍以及 五种 数据类型_第7张图片

列表类型(List)

lpush:左侧插入元素,也就是在list的头部
lpush+key命名+ 值

redis 的基本介绍以及 五种 数据类型_第8张图片
返回的 (integer)1 (integer)2 是元素个数

使用 lrange 命令查看元素,可以看到是在头部插入的 , 0 1 代表角标从 0 到 1 的 元素

在这里插入图片描述
rpush:右侧插入元素,也就是在list的尾部
rpush+key命名+ 值

redis 的基本介绍以及 五种 数据类型_第9张图片
list 的应用其实很广泛,我们可以使用list来实现消息队列并且可以保证先后顺序,其次还可以使用lrange实现分页功能

所以说redis 牛就是很牛,还远远不止这些

哈希类型(Hash)

格式1:
存:hset key 值的key 值
取:hget key 值的key 值

第一个key 是redis key-value 的key
第二个key 是 value hash类型又是key-value 的key
可以再看看这张图

redis 的基本介绍以及 五种 数据类型_第10张图片
别忘了 redis 是 key-value 存储数据的

redis 的基本介绍以及 五种 数据类型_第11张图片
格式2:
设置多个值
hmet key 值key1 值1 值key2 key2 。。。

在这里插入图片描述
获取多个值

redis 的基本介绍以及 五种 数据类型_第12张图片
其他一些Hash 操作可以看看官网 https://redis.io/commands/hmset/

无序集合类型(Set)

设置值:sadd key 值
获取所有:smembers key

redis 的基本介绍以及 五种 数据类型_第13张图片
可以看到输出值的顺序是没有规律的
试试重复值,再次设置“redis12" 返回 0,说明不可重复

redis 的基本介绍以及 五种 数据类型_第14张图片
判断一个元素是否在集合中 用 sismember

在这里插入图片描述
存在返回1,不存在返回 0

有序集合类型(Zset)

语法格式

zadd key 序号 值

在这里插入图片描述
成功返回1

如果相同值则返回0 ,不可重复,表示失败

redis 的基本介绍以及 五种 数据类型_第15张图片
是可以存在相同序号的,并列,比赛都有并列第一

在这里插入图片描述
查看所有元素

zrange key名字 0 -1

在这里插入图片描述
如果想查看所有元素并且带上序列号
zrange key名字 0 -1 withscores

redis 的基本介绍以及 五种 数据类型_第16张图片
通过打印输出可以看到 zset 是有序的,不可重复

redis 的基本介绍以及 五种 数据类型_第17张图片

以上就是redis基本介绍,以及五大类型的存储

当然了,开发中肯定不是用命令行这样操作,下一章节我们将来探讨探讨,在Java中,在代码中 是怎么样操作 使用redis的 以及 在springboot框架中是怎样来使用的 ,以及 两者不同使用情况的区别。。

你可能感兴趣的:(redis,缓存,数据库)