Redis简介
Redis是一个基于内存的key-value结构数据库
为啥有了数据库还要用Redis,因为Redis基于内存存储,读写性能高 ,那我们直接用Redis存储放弃mysql不行吗? 当然不,Redis是基于内存存储的,内存是有限的,所有Redis适合存储热点数据
Redis存储的是key-value结构的数据,其中key是字符串类型,value有5中常用的数据类型
字符串 string 普通字符串,Redis中最简单的数据结构
哈希 hash 也叫散列,类似于Java中的HashMap结构
列表 list 按照插入顺序排序,可以重复元素,类似于Java中的LinkedList
集合 set 无序集合,没有重复元素,类似于Java中的HashSet
有序集合 sorted set/zset 集合中每个元素关联一个分数,根据分数升序排序,没有重复元素
Redis字符串类型常用命令: 在Redis和sql一样并不区分大小写
SET key value 设置指定key的值
GET key 获取指定key的值
SETEX key seconds value 设置指定key的值,并将key的过期时间设为seconds 秒
SETNX key value 只有在key不存在时设置key的值
Redis hash 是一个string类型的field 和value的映射表,hash特别适合用于存储对象,常用命令
HSET key field value 将哈希表key中的字段field 的值为value
HGET key field 获取存储在哈希表中指定字段的值
HDEL key field 删除存储在哈希表中的指定字段
HKEYS key 获取哈希表中所有字段
HVALS key 获取哈希表所有值
Redis 列表是最简单的字符串列表,按照插入顺序排序,常用命令:
LPUSH key value1 [value2] 将一个或多个值插入到列表头部
LRANGE key start stop 获取列表指定范围内的元素
RPOP key 移除并获取列表的最后一个元素
LLEN key获取列表长度
Redis set是string类型的无序集合,集合成员是唯一的,集合中不能出现重复的数据,常用命令
SADD key member1[member2] 向集合添加一个或多个成员
SMEMBERS key 返回集合中的所有成员
SCARD key 获取集合的成员数
SINTER key1 [key2] 返回给定所有集合的交集
SUNION key1 [key2] 返回所有给定集合的并集
SREM key member1 [member2] 删除集合中一个或多个成员
Redis有序集合时string类型元素的集合,且不允许有重复成员,每个元素都会关联一个double类型
的分数
ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员
ZRANGE key start stop[WITHSCORES]通过索引区间返回有序集合中指定区间内的成员
ZINCRBY key increment member 有序集合中对指定成员的分数加上增量increment
ZREM key member[member...] 移除有序集合中的一个或多个成员
Redis的通用命令是不分数据类型的,都可以使用的命令:
KEYS pattern 查找所有符合给定模式的key
EXISTS key 检查给定key是否存在
TYPE key 返回key所储存的值得类型
DEL key 该命令用于在key存在是删除key
建立与Redis的连接
xml文件(引入依赖)

yml文件


先建立RedisTemplate对象,然后建立连接。
那么什么是序列化对象,我们发现左边不是乱码,而右边是乱码,就是因为key的序列化对象
不过这是展示的错误,并不是数据的错误,调用的时候数据依旧是对的(另外,序列化器不同,展示的也有所不同)

接下来就是Redis各种数据类型操作在Java中的实现
- String类型在Java中的应用
String中setex和setnx在java里面有分别对应着 set(这里和第一个set的参数不一样)和setIfAbsent

2.Hash类型在Java中的应用
hset对应put ,hget- get hkeys -keys hvals-values hdel-delete

3.List类型在Java中应用
lpush 多插和单插分别对应 leftPushAll 和leftPush lrange对应的range
size对应的size

4.无序集合在Java中的应用
sadd-add smembers-members scard-size sinter-intersect sunion-union srem-remove()

5.有序集合在Java中的应用
zadd-add zrange-range zincrby-incrementScore zrem-remove

常用Redis命令在Java中的应用
keys-keys exist-hasKey type-type del-delete
