本系列教程内容提要
Java工程师之Redis实战系列教程教程是一个学习教程,是关于Java工程师的Redis知识的实战系列教程,本系列教程均以解决特定问题为目标,使用Redis快速解决在实际生产中的相关问题,为了更方便的与大家一起探讨与学习,每个章节均提供尽可能详细的示例源码及注释,所有示例源码均可在javacourse-redis-in-action找到相关帮助!
本章目标:
- 什么是Redis
- Redis数据结构
- Redis常用命令
什么是Redis
Redis是一个功能强大的非关系型内存数据库(或者说内存数据结构)服务器,开源软件;
Redis数据结构
Redis有五种存储键与不同数据结结构类型之间的映射,分别是STRING(字符串),LIST(列表),SET(集合),HASH(散列),ZSET(有序集合),熟练运用这五种数据结构才是掌握Redis的核心所在,不可轻视。
数据结构 |
存储值 |
读写能力 |
STRING |
字符串,整数,浮点数 |
对字符串或部分进行操作;对整数和浮点数执行自增或者自减操作 |
LIST |
链表(每个节点都包含一个字符串) |
链表的推入,弹出;链表的修建;取值;查值;移除; |
SET |
包含字符串的无序收集器,不可重复 |
添加;获取;移除;检查存在;计算交集,并集,差集;随机取值; |
ZSET |
字符串成员与浮点数分值之间的有序映射,元素的排序由分值决定 |
添加;获取;移除; |
HASH |
包含键值对的无序散列表 |
添加;获取;移除; |
Redis常用命令
针对Redis的五种数据结构有如下常用命令。当然,Redis官网提供了更为全面的命令 https://redis.io/commands# http://redisdoc.com/
STRING
基本命令 |
说明 |
SET |
设置存储在给定键中的值 |
GET |
获取存储在给定键中的值 |
DEL |
删除存储在给定键中的值 |
数值命令 |
说明 |
INCR |
将键存储的值加上1 |
DECR |
将键存储的值减去1 |
INCRBY |
将键存储的值加上Count |
DECRBY |
将键存储的值减去Count |
INCRBYFLOAT |
将键存储的值加上浮点数Float |
操作命令 |
说明 |
APPEND |
将VALUE值追加到给定键的值的末尾 |
GETRANGE |
获取偏移量start到end范围内的所有字符组成的子串 |
SETRANGE |
将偏移量strat到end的字串设置为给定值 |
GETBIT |
获取偏移量为offset的二进位值 |
SETBIT |
设置偏移量为offset的二进位值 |
BITCOUNT |
统计二进制位串值为1的数量 |
BITOP |
对一个或者多个二进制位串执行AND,OR,XOR,NOT任意一种运算操作,存在dest-key中 |
LIST
基本操作 |
说明 |
PRUSH |
将给定值推入到列表的右端 |
LPUSH |
将给定值推入到列表的左端 |
LPOP |
将列表的左端推出一个值 |
RPOP |
将列表的右端推出一个值 |
LINDEX |
获取列表给定位置元素 |
LRANGE |
返回列表从start到end偏移量在内的所有元素 |
LTRIM |
保留偏移量start到end内的元素 |
高级操作 |
说明 |
BLPOP |
从第一个非空列表中弹出最左侧元素,或者在timeout之内阻塞等待元素出现 |
BRPOP |
从第一个非空列表中弹出最右侧元素,或者在timeout之内阻塞等待元素出现 |
RPOPLPUSH |
从第一个列表中弹出右端元素,推入第二列表的左端,返回此元素 |
BRPOPLPUSH |
从第一个列表中弹出右端元素,推入第二列表的左端,返回此元素,如果没有值,阻塞等待出现 |
SET
命令 |
说明 |
SADD |
将给定元素添加到集合 |
SREM |
如果给定元素存在集合,则删除 |
SISMEMBER |
检查元素是否存在集合中 |
SCARD |
返回集合包含的元素的数量 |
SMEMBERS |
返回集合包含的所有元素 |
SRANDMEMBER |
从集合中随机返回一个或者多个元素 |
SPOP |
随机从集合中移除一个元素,并返回这个元素 |
SMOVE |
如果这个集合包含key,那么移除,将移除元素添加到dest-key中 |
按位运算符命令 |
说明 |
SDIF |
计算差集 |
SDIFFSTORE |
计算差集,并存储到dest-key |
SINTER |
计算交集 |
SINTERSTORE |
计算交集,并存储到dest-key |
SUNION |
计算交集 |
SUNIONSTORE |
计算交集,并存储到dest |
ZSET
命令 |
说明 |
ZADD |
将一个带有给定分值的成员添加到有序集合中 |
ZREM |
如果给定成员存在有序集合中,则移除 |
ZCARD |
返回有序集合的数量 |
ZINCRBY |
将member成员的分值加上count |
ZRANK |
返回成员member的在有序集合的排名 |
ZCOUNT |
返回分值在min和max之间的成员数量 |
ZRANGEBYSCORE |
获取有序集合在给定分值范围内的所有元素 |
ZRANGE |
根据元素在有序集合中的位置,从有序集合中取出多个元素,如果给定[WITHSCORES]则返回分值 |
高级命令 |
说明 |
ZINTERSTORE |
对给定的有序集合执行类似集合的交集运算 |
ZUNIONSTORE |
对给定的有序集合执行类似集合的并集运算 |
HASH
命令 |
说明 |
HSET |
在散列中关联给定的键值对 |
HGET |
获取指定散列键的值 |
HDEL |
如果给定键在散列里面,移除 |
HGETALL |
获取散列包含的所有键值对 |
高级命令 |
说明 |
HEXISTS |
检查给定键是否存在散列中 |
HKEYS |
获取散列包含的键 |
HVALS |
获取散列包含的值 |
HINCRBY |
将键Key存储的值加上count |
HINCRBYFLOAT |
将键Key存储的值加上浮点数count |
HGETALL |
获取散列包含的所有键值对 |
其他命令
事务命令 |
说明 |
MULTI |
开启事务 |
EXEC |
提交事务 |
排序命令 |
说明 |
SORT |
根据给定的选项,对输入的列表,集合或者有序集合进行排序,然后返回或则存储排序结果 |
键的过期 |
说明 |
EXEPIRE |
给定键指定多少秒后过期 |
TTL |
查看键还有多少秒过期 |
PERSIST |
移除键的过期时间 |
EXPIREAT |
将过期时间设置为给定的UNIX时间戳 |
PTTL |
查看键还有多少毫秒过期 |
PEXPIRE |
让给定键指定多少毫秒后过期 |
PEXPIREAT |
将过期时间(毫秒精度)设置为给定的UNIX时间戳 |