Redis是一种NOSQL数据库,存储的是键值对Key~Value,常用的数据结构如下:
1 字符串
常用命令: SET GET DEL 使用和JAVA的MAP类似
自增自减命令:
INCR DECR INCRBY DECRBY INCRBYFLOAT
处理字符串的命令
APPEND GETRANGE SETRANGE
比如 set hello world 、 get hello 、del hello
2 链表结构----linked-list 有序存储
常用命令:RPUSH LPUSH RPOP LRANGE LINDEX LPOP LTRIM
BLPOP----弹出最左侧的元素 BRPOP RPOLPUSH-----将一个列表里面右边元素弹出放到另一个列表的左边 BRPOPLPUSH
3 集合
与列表相比,列表可以存储多个相同的字符串,而集合则通过使用散列表来保证自己存储的每个字符串都是各不相同的。
常用命令:SADD SREM SMEMBERS SISMEMBER SRANGEMEMBERS SCARD-----返回集合的个数
SMOVE 将一个集合中的元素移除到另一个集合中,SPOP---随机移除集合中的一个元素
高级命令
SDIFF --- 返回只存在第一个的集合不存在于其他集合中的元素 差集
SDIFFSTORE ---- 将只存在第一个集合中的元素返回到存储到一个集合中
SINTERSTORE ---- 将多个集合共同的元素存储到一个集合中 交集
SUNION ---- 返回至少存在一个集合中的元素 并集
SUNIONSTORE ---- 存储至少存在一个集合中的元素到一个集合中
4 散列
存储多个键值对之间的映射。常用命令:HSET HGET HGETALL HDEL
HSET hash-key key1 value1
HGET hash-key
HDEL hash-key
HMGET 批量获取
HMSET 批量设置
HLEN 获取散列的键值对数量
HEXIST 检查指定键值是否存在于散列中
HKEYS 获取散列包含的所有键值
HVALS 获取散列包含的所有值
HGETALL 获取三年包含的所有键值对
HINCRBY 将键key存储的值加上整数increment
HINCRBYFLOAT 将键存储的值加上浮点数
5 有序集合
有序集合和散列一样,都用于存储键值对:有序集合的键被称为成员(member),每个成员都是各不相同的;而有序集合的值则被称为分值(score),分值必须为浮点数。有序集合是 Redis 里面唯一一个既可以根据成员访问元素(这一点和散列一样),又可以根据分值以及分值的排列顺序来访问元素的结构。
常用命令:ZADD ZRANGE ZRANGEBYSCORE ZREM ZCARD ZINCRBY ZCOUNT ZRANK ZSCORE
ZADD zset-key 728 member1
ZRANGE zset-key 0 -1 WITHSCORES
ZREM zset-key member1
ZREVRANK 返回有序集合的成员的排名,成员按照分值从大到小排列
ZREVRANGE 返回指定返回内的成员,大到小排列
ZRANGEBYSCORE 返回分值介于范围之间的所有成员
ZREVRANGEBYSCORE 返回分值介于范围之间的所有成员并按大小排列
ZREMRANGEBYRANK 移除有序集合中排名范围之间的所有成员
ZREMRANGEBYSCORE 移除有序集合中分值介于两者之间的所有成员
ZINTERSTORE 对给定集合执行交集运算
ZUNIONSTORE 对给定集合执行并集运算