?
?
?一 背景
我们现在的项目架构中,基本上是Web服务器(Tomcat)和数据库独立部署,独占服务器资源,随着用户数的增长,并发读写数据库,会加大数据库访问压力,导致性能的下降,严重时直接导致系统宕机。
我们可以在Tomcat同服务器上中增加本地缓存,并在外部增加分布式缓存,缓存热门数据。也就是通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力
基于这样的一种架构设计,于是类似redis的一些分布式数据库就诞生了
2.Redis是一个key-value存储系统,是一个分布式缓存数据库。
二Redis初始操作
1.启动redis服务 docker start redis
2.docker 中查看redis 服务 docker ps
3.查看启动的redis进程信息 ps -ef | grep redis
4.进入redis容器 docker exec -it? redis bash
5.登陆本地 redis redis -cli
6.查看redis信息 redis info
7.清空redis屏幕? ?clear
8.退出redis服务? exit
9关闭redis服务? shutdown
三 Redis数据存储操作
1.查看redis中的key? keys *
2.基于key/value形式存储数据? ? ? set? ?K? V?
3.基于key获取redis中存储的数据? ? get K
4.清除当前数据库数据? flushdb
5.清除所有数据库数据 flushall
6.Key有效时间设计? ?Expire (设置生效时长-单位秒)
7.Persist (取消时长设置)
三 redis常用的数据类型
1.Redis作为一种key/value结构的数据存储系统,为了便于对数据进行进行管理,提供了多种数据类型。
2.String类型
2.1?incr? ?自增,默认每次增加1/incrby 自增,可以设置增加的数目
2.2decr 自减,默认每次减1/decrby,自减,可以设置自减去的
2.3 append 追加,自动在末尾追加
2.4 strlen??字符串长度,返回数据的长度,如果键不存在则返回0。
2.5?mset/mget 同时可以设置多个值或者获取多个值
3. Hash类型
Redis散列类型相当于Java中的HashMap,实现原理跟HashMap一致,一般用于存储对象信息
3.1hset/hget
3.2hincrby
3.3 hmset/hmget?置和获取对象属性
3.4hexists?属性是否存在
3.5 hdel 删除属性
3.6hkey /hval 获取k值或者vlu值
4List? 类型?
Redis的list类型相当于java中的LinkedList,其原理就就是一个双向链表
4.1lpush 头部添加字符串元素
4.2rpush 尾部添加字符串元素
4.3 lpop?头部删除元素
4.4 rpop 尾部删除元素
注意Lpush 与rpop 搭配和rpush 与lpop搭配,是队列模式(先进先出)
? ? ? ? ? lpush 与lpop 和rpush 与rpop 搭配,是栈的模式(先进后出)
4.5 del 删除表
4.6 linsert?在key对应list的特定位置之前或之后添加字符串元素
4.7lset?设置list中指定下标的元素值(一般用于修改操作)
4.8 lrem?从key对应list中删除count个和value相同的元素,count>0时,按从头到尾的顺序删除
4.9ltrim?保留指定key 的值范围内的数据
5.0 llen?返回key对应list的长度:
5.1lindex?返回名称为key的list中index位置的元素
6 Set类型
6.1sadd?添加元素,重复元素添加失败,返回0
6.2smembers?获取内容
6.3spop 移除并返回集合中的一个随机元素
6.4 scard?获取成员个数
6.5smove?移动一个元素到另外一个集合
6.6 sunion 并集
|