一、redis是什么?
一句话:redis 是一个开源的、使用C语言编写的、支持网络交互,基于内存也可持久化的 key-value (非关系型)数据库
redis作者博客,有兴趣的小伙伴可以去逛一逛:http://github.com/antirez
二、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)
这五种类型长什么样呢?简单图解
下面的演示例子(key )我就不按照什么冒号分开命名了,实际上我们公司也没有这样命名,但你要知道这个命名方式,以防万一
字符串类型(String)
设置值:set+key名称+值
获取值:get key名称
给同一个key 设置不同的字符串,后者会覆盖前者的值
还可以通过字符串类型对数值进行操作,redis 自己会将字符串转为数字
incr : 自增1
incrby : 原数字+几
3+2 5+9 14+1
同理:
decr :减 1
decrby : 原数字 - 几
列表类型(List)
lpush:左侧插入元素,也就是在list的头部
lpush+key命名+ 值
返回的 (integer)1 (integer)2 是元素个数
使用 lrange 命令查看元素,可以看到是在头部插入的 , 0 1 代表角标从 0 到 1 的 元素
rpush:右侧插入元素,也就是在list的尾部
rpush+key命名+ 值
list 的应用其实很广泛,我们可以使用list来实现消息队列并且可以保证先后顺序,其次还可以使用lrange实现分页功能
所以说redis 牛就是很牛,还远远不止这些
哈希类型(Hash)
格式1:
存:hset key 值的key 值
取:hget key 值的key 值
第一个key 是redis key-value 的key
第二个key 是 value hash类型又是key-value 的key
可以再看看这张图
别忘了 redis 是 key-value 存储数据的
格式2:
设置多个值
hmet key 值key1 值1 值key2 key2 。。。
获取多个值
其他一些Hash 操作可以看看官网 https://redis.io/commands/hmset/
无序集合类型(Set)
设置值:sadd key 值
获取所有:smembers key
可以看到输出值的顺序是没有规律的
试试重复值,再次设置“redis12" 返回 0,说明不可重复
判断一个元素是否在集合中 用 sismember
存在返回1,不存在返回 0
有序集合类型(Zset)
语法格式
zadd key 序号 值
成功返回1
如果相同值则返回0 ,不可重复,表示失败
是可以存在相同序号的,并列,比赛都有并列第一
查看所有元素
zrange key名字 0 -1
如果想查看所有元素并且带上序列号
zrange key名字 0 -1 withscores
通过打印输出可以看到 zset 是有序的,不可重复
以上就是redis基本介绍,以及五大类型的存储文章来源:https://www.toymoban.com/news/detail-500368.html
当然了,开发中肯定不是用命令行这样操作,下一章节我们将来探讨探讨,在Java中,在代码中 是怎么样操作 使用redis的 以及 在springboot框架中是怎样来使用的 ,以及 两者不同使用情况的区别。。文章来源地址https://www.toymoban.com/news/detail-500368.html
到了这里,关于redis 的基本介绍以及 五种 数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!