一、Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型。
二、5种常用的数据类型:String hash list set sorted set
1. new HashMap<String,String>();
2. new HashMap<String,new HashMap<>>();
3. new HashMap<String,new ArrayList<>>();
4. new HashMap<String,new HashSet<>>();
5. new HashMap<String,new 有序set<>>();
三、Redis常用命令
3.1 String类型
-
SET key value :设置指定key的值
-
GET key :获取指定key的值
-
SETEX key seconds value :设置指定key的值,并将 key 的过期时间设为 seconds 秒
-
SETNX key value :只有在 key 不存在时设置 key 的值
3.2 哈希类型
Redis hash 是一个string类型的 field 和 value 的映射表,hash特别适合用于存储对象。
-
HSET key field value :将哈希表 key 中的字段 field 的值设为 value
-
HGET key field :获取存储在哈希表中指定字段的值
-
HDEL key field :删除存储在哈希表中的指定字段
-
HKEYS key :获取哈希表中所有字段
-
HVALS key :获取哈希表中所有值
-
HGETALL key :获取在哈希表中指定 key 的所有字段和值
3.3 list类型
Redis list 是简单的字符串列表,按照插入顺序排序。
-
LPUSH key value1 [value2] :将一个或多个值插入到列表头部,值可以相同
-
LRANGE key start stop :获取列表指定范围内的元素
-
RPOP key :移除并获取列表最后一个元素
-
LLEN key :获取列表长度
-
BRPOP key1 [key2] timeout :移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
3.4 set类型
Redis set 是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
-
SADD key member1 [member2] :向集合添加一个或多个成员
-
SMEMBERS key :返回集合中的所有成员
-
SCARD key :获取集合的成员数
-
SINTER key1 [key2] :返回给定所有集合的交集
-
SUNION key1 [key2] :返回所有给定集合的并集
-
SDIFF key1 [key2] :返回给定所有集合的差集(key1中存在,key2中不存在的)
-
SREM key member1 [member2] :移除集合中一个或多个成员
3.5 sorted set(zset)类型
Redis sorted set(zset) 有序集合是 string 类型元素的集合,且不允许重复的成员。每个元素都会关联一个double类型的分数(score) 。redis正是通过分数来为集合中的成员进行从小到大排序。有序集合的成员是唯一的,但分数却可以重复。
-
ZADD key score1 member1 [score2 member2] :向有序集合添加一个或多个成员,或者更新已存在成员的分数
-
ZRANGE key start stop [WITHSCORES] :通过索引区间返回有序集合中指定区间内的成员
-
ZINCRBY key increment member :有序集合中对指定成员的分数加上增量 increment
-
ZREM key member [member ...] :移除有序集合中的一个或多个成员
3.6 通用命令
Redis中的通用命令,主要是针对key进行操作的相关命令。
-
KEYS pattern 查找所有符合给定模式( pattern)的 key
-
EXISTS key 检查给定 key 是否存在
-
TYPE key 返回 key 所储存的值的类型
-
TTL key 返回给定 key 的剩余生存时间(TTL, time to live),以秒为单位。-1:没有过期时间,永久有效。-2:已经过期或者不存在这一个key。正数:代表还能在内存中存活的时间,单位秒。
-
DEL key 该命令用于在 key 存在是删除 key