【Redis】数据结构

概念

Redis是一个远程内存数据库,提供了5种不同类型的数据结构,帮助用户解决问题;

通过复制、持久化、客户端分片等特性,可以方便地将Redis扩展成一个包含数百GB数据、每秒处理上百万次请求的系统

 

数据结构

结构类型 存储值 读写能力
string 字符串、整数、浮点数 对整个或部分字符串操作;
对整数、浮点数自增、自减操作;
list 一个链表,链表上的每个节点都包含了一个字符串 从链表两端推入弹出元素;
根据偏移量对链表修剪;
读取多个元素;根据值查找、移除元素
set 字符串的无序收集器,每个字符串都不相同 添加、获取、移除单个元素;
检查元素是否存在;
计算交集、并集、差集;随机获取元素
hash 键值对的无序散列表 添加、获取、移除单个键值对;
获取所有键值对
zset 字符串成员与浮点数分值的有序映射,排列顺序由根据分值大小决定 添加、获取、删除单个元素;
根据分值、成员获取元素
字符串
命令 用例 描述
INCR INCR keyname 该键存储值加1
DECR DECR keyname 该键存储值减1
INCRBY INCRBY keyname amount 该键存储值加amount
DECRBY DECRBY keyname amount 该键存储值减amount
INCRBYFLOAT INCRBYFLOAT keyname amount 该键存储值加amount
APPEND APPEND keyname value 将value追加到键值末尾
GETRANGE GETRANGE keyname start end 获取从start到end所有字符组成的子串
SETRANGE SETRANGE keyname offset value 设置从start到end的子串为value
GETBIT GETBIT keyname offset 返回位串中偏移量为offset的二进制的值
SETBIT SETBIT keyname offset value 设置位串中偏移量为offset的二进制的值为value
BITCOUNT BITCOUNT keyname [start end] 统计二进制位串里值为1的二进制位的数量
BITOP BITOP operation dest-key keyname[keyname…] 对二进制位串执行并/或/异或/非 位运算操作,结果保存在dest-key中
列表
命令 用例 描述
RPUSH RPUSH keyname value [value …] 将一个或多个值推入列表右端
LPUSH LPUSH keyname value [value …] 将一个或多个值推入列表左端
RPOP RPOP keyname 移除并返回列表最右端的元素
LPOP LPOP keyname 移除并返回列表最左端的元素
LINDEX LINDEX keyname offset 返回列表中偏移量为offset的元素
LRANGE LRANGE keyname start end 返回列表中从start到end的元素
LRTIM LRTIM keyname start end 保留列表中从start到end的元素
BLPOP BLPOP keyname [keyname …] timeout 在timeout内阻塞并等待可弹出的元素
BRPOP BRPOP keyname [keyname …] timeout 在timeout内阻塞并等待可弹出的元素
RPOPLPUSH RPOPLPUSH sourcekey destkey 从sourcekey列表中弹出最右端的元素,然后推入destkey列表的最左端,并向用户返回这个元素
BRPOPLPUSH BRPOPLPUSH sourcekey destkey timeout 在timeout内阻塞并等待可弹出的元素,然后从sourcekey弹出,推入到destkey中,并向用户返回这个元素
集合
命令 用例 描述
SADD SADD keyname item[item…] 将一个或多个元素添加到集合,并返回被添加进入元素的数量
SREM SREM keyname item[item…] 从集合移除一个或多个元素,并返回移除元素数量
SISMEMBER SISMEMBER keyname item 检查item是否存在于集合
SCARD SCARD keyname 返回集合中元素数量
SMEMBERS SMEMBERS keyname 返回集合包含的所有元素
SRANDMEMBER SRANDMEMBER keyname [count] 从集合随机返回一个或多个元素
SPOP SPOP keyname 随机移除集合中的一个元素,并返回移除的元素
SMOVE SMOVE sourcekey destkey item 从sourcekey移除item到destkey
SDIFF SDIFF keyname [keyname…] 返回差集
SDIFFSTORE SDIFFSTORE keyname [keyname…] 将差集存储到destkey中
SINTER SINTER keyname [keyname…] 返回交集
SINTERSTORE SINTERSTORE destkey keyname [keyname…] 将交集存储到destkey中
SUNION SUNION keyname [keyname…] 返回并集
SUNIONSTORE SUNIONSTORE destkey keyname [keyname…] 将并集存储到destkey中
散列
命令 用例 描述
HMGET HMGET keyname key [key…] 从散列中获取一个或多个key的值
HMSET HMSET keyname key value [key valus…] 为散列中一个或多个key设置值
HDEL HDEL keyname key [key…] 删除散列中一个或多个键值对,返回成功删除的数量
HLEN HLEN keyname 返回散列包含的键值对数量
HEXISTS HEXISTS keyname key 检查key是否存在
HKEYS HKEYS keyname 获取散列所有key
HVALS HVALS keyname 获取散列所有value
HGETALL HGETALL keyname 获取散列中所有键值对
HINCRBY HINCRBY keyname key increment 将key存储值加increment
HINCRBYFLOAT HINCRBYFLOAT keyname key increment 将key存储值加increment
有序集合
命令 用例 描述
ZADD ZADD keyname score memeber [score member…] 将带有给定分值的成员添加到有序集合中
ZREM ZREM keyname member [member…] 从有序集合中移除给定的成员,返回移除的量
ZCARD ZCARD keyname 返回有序集合中包含的成员数量
ZINCREBY ZINCREBY keyname increment member 将member成员的分值加上increment
ZCOUNT ZCOUNT keyname min max 返回分值介于min和max之间的成员变量
ZRANK ZRANK keyname member 返回成员member在有序集合的排名
ZSCORE ZSCORE keyname member 返回成员member的分值
ZRANGE ZRANGE keyname start stop [withscores] 返回有序集合中排名介于start和stop之间的成员
ZREVRANK ZREVRANK keyname member 返回有序集合member的排名,按照分值从大到小排列
ZREVRANGE ZREVRANGE keyname start stop [withscores] 返回有序集合给定范围内的成员,按分值排列
ZRANGEBYSCORE ZRANGEBYSCORE key min max [withscores] [limit offset count] 返回有序集合中,分值介于min和max之间的所有成员
ZREVRANGEBYSCORE ZREVRANGEBYSCORE key min max [withscores] [limit offset count] 获取有序集合中分值介于min和max之间的所有成员,按分值大小返回
ZREMRANGEBYRANK ZREMRANGEBYRANK keyname start stop 移除有序集合中排名介于min和max之间的所有成员
ZREMRANGEBYSCORE ZREMRANGEBYSCORE keyname min max 移除有序集合中分值介于min和max之间的所有成员
ZINTERSTORE ZINTERSTORE destkey keycount key [key…] 对给定的有序集合进行交集运算
ZUNIONSTORE ZUNIONSTORE destkey keycount key [key…] 对给定的有序集合进行并集运算

 

小结

Redis 是一个高性能的key-value数据库,了解并运用这些API可以在不同的场景解决相应的问题

你可能感兴趣的:(………Redis)