一句话:redis 是一个开源的、使用C语言编写的、支持网络交互,基于内存也可持久化的 key-value (非关系型)数据库
redis作者博客,有兴趣的小伙伴可以去逛一逛:http://github.com/antirez
关于key 的命名,不要太长也不要太短,Key太长越占资源,太短可读性又很差,key 之间的单词用 :(冒号)隔开
emmmm …
一般来说,key 的命名可以这样,项目名称+表名称(mysql或者oracle 等 表名)+ 表中需要存储到redis的字段名字
比如
项目名称叫:project
mysql中用到的表名字叫 user_info
需要存储的字段为 :name
值为:java资讯
那么,结合起来就是这样
project:userInfo:name:Java资讯
一般来讲是上面这种命名方式,最主要还是看公司有没有自己的一套命名方式,要是公司没有强制要求这些,就算你 直接 这样 name:java资讯 ,也是可以的,开发前还是问一问
redis的value 支持 5 种 数据类型
字符串类型(String) 列表类型 (List)
哈希类型(Hash)
无序集合类型(Set)
有序集合类型(Zset)
这五种类型长什么样呢?简单图解
下面的演示例子(key )我就不按照什么冒号分开命名了,实际上我们公司也没有这样命名,但你要知道这个命名方式,以防万一
设置值:set+key名称+值
获取值:get key名称
还可以通过字符串类型对数值进行操作,redis 自己会将字符串转为数字
incr : 自增1
同理:
decr :减 1
decrby : 原数字 - 几
lpush:左侧插入元素,也就是在list的头部
lpush+key命名+ 值
返回的 (integer)1 (integer)2 是元素个数
使用 lrange 命令查看元素,可以看到是在头部插入的 , 0 1 代表角标从 0 到 1 的 元素
rpush:右侧插入元素,也就是在list的尾部
rpush+key命名+ 值
list 的应用其实很广泛,我们可以使用list来实现消息队列并且可以保证先后顺序,其次还可以使用lrange实现分页功能
所以说redis 牛就是很牛,还远远不止这些
格式1:
存:hset key 值的key 值
取:hget key 值的key 值
第一个key 是redis key-value 的key
第二个key 是 value hash类型又是key-value 的key
可以再看看这张图
格式2:
设置多个值
hmet key 值key1 值1 值key2 key2 。。。
其他一些Hash 操作可以看看官网 https://redis.io/commands/hmset/
设置值:sadd key 值
获取所有:smembers key
可以看到输出值的顺序是没有规律的
试试重复值,再次设置“redis12" 返回 0,说明不可重复
语法格式
zadd key 序号 值
如果相同值则返回0 ,不可重复,表示失败
zrange key名字 0 -1
如果想查看所有元素并且带上序列号
zrange key名字 0 -1 withscores
以上就是redis基本介绍,以及五大类型的存储
当然了,开发中肯定不是用命令行这样操作,下一章节我们将来探讨探讨,在Java中,在代码中 是怎么样操作 使用redis的 以及 在springboot框架中是怎样来使用的 ,以及 两者不同使用情况的区别。。