一,Redis出现的背景。
我们现在的项目架构中,基本上是Web服务器(Tomcat)和数据库独立部署,独占服务器资源,
随着用户数的增长,并发读写数据库,会加大数据库访问压力,导致性能的下降,严重时直接导致系统宕机。
因此,我们可以在Tomcat同服务器上中增加本地缓存,并在外部增加分布式缓存,缓存热门数据
,也就是通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。
=========================================================================
二,什么是redis。
Redis是一个key-value存储系统,是一个分布式缓存数据库。
=========================================================================三,redis常用数据类型。
Redis中基础数据结构包含字符串,散列Hash,列表List,集合,有序集合。
=========================================================================
一,String类型操作实践
字符串类型可以实现博客的字数统计,将日志不断追加到指定key,实现一个分布式自增iid,实现一个博客的的点赞操作等。
1.incr/incrby,键值递增。
语法:INCR key
语法:INCRBY key increment
2.decr/decrby,减少指定的整数。
DECR key 按照默认步长(默认为1)进行递减
DECRBY key decrement 按照指定步长进行递减
3.append 向尾部追加值。
语法:APPEND key value
4.strlen 返回数据的长度,如果键值为空串,返回也是0。
语法:STRLEN key
5.mset/mget,同时设置/获取多个键值。
语法:MSET key value [key value …],MGET key [key …]
====================================================================
二,Hash类型应用实践。
Redis散列类型相当于Java中的HashMap,存储了字段(field)和字段值的映射。
1.hset/hget,
HSET和HGET赋值和取值
2.hmset/hmget,
HMSET和HMGET设置和获取对象属性
3.hexists 属性是否存在,
4.hdel 删除属性
5.hkeys/hvals 获取字段名HKEYS或字段值HVALS
=======================================================================
三,List类型应用实践
Redis的list类型相当于java中的LinkedList,其原理就就是一个双向链表。支持正向、反向查找和遍历等操作,插入删除速度比较快。经常用于实现热销榜,最新评论等的设计。
1.lpush
在key对应list的头部添加字符串元素
2.Lrange+List名称
返回列表中指定区间内的元素,其中 0 表示列表的第一个元素, -1 表示列表的最后一个元素,
3.rpush
在key对应list的尾部添加字符串元素
4.linsert
在key对应list的特定位置之前或之后添加字符串元素
5.lset
设置list中指定下标的元素值
6.lrem
从key对应list中删除count个和value相同的元素,count>0时,按从头到尾的顺序删除
7.ltrim
保留指定key 的值范围内的数据
8.lpop
从list的头部删除元素,并返回删除元素
9.rpop
从list的尾部删除元素,并返回删除元素
10.llen
返回key对应list的长度:=========================================================================
四,Set类型应用实践
Redis的Set类似Java中的HashSet,是string类型的无序集合。集合成员是唯一的,这就意味着
集合中不能出现重复的数据。Redis中Set集合是通过哈希表实现的。
1.sadd
添加元素,重复元素添加失败,返回0。
2.smembers
获取内容
3.spop
移除并返回集合中的一个随机元素
4.scard
获取成员个数
5.smove
移动一个元素到另外一个集合
6.sunion
并集
=========================================================================