Redis简介
源自Redis实战
redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型。
redis是一个非常快的非关系型数据库,它可以存储键(key)与5种不同类型的值(value)之间的映射(mapping),可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能,下面主要介绍一下redis的五种数据结构。
Redis中五种数据类型分别为:string,list,set,hash,zset。且存储的时候分为键和值
结构类型 | 结构存储的值 | 结构的读写能力 |
string | 可以是字符串 整数或者浮点数 | 对整个字符串 或者字符串的其中一部分执行操作;对整数和浮点数执行自增或者自减操作 |
list | 一个链表,链表上的每个节点都包含了一个字符串 | 从链表的两端推入或弹出元素;根据偏移量对链表进行修剪(trim);读取单个或者多个元素;根据值查找或移除元素 |
set | 包含字符串的无序收集器 并且被包含的每个字符串都是独一无二的、各不相同的 | 添加、获取、移除单个元素;检查一个元素是否存在于集合中;计算交集、并集、差集;从集合里面随机获取元素。 |
hash | 包含键值对的无序散列表 | 添加、获取、移除单个键值对;获取所有键值对 |
zset(有序集合) | 字符串成员与浮点数分值之间的有序映射,元素的排列顺序由分值的大小决定 | 加、获取、删除单个元素;根据分值分为或者成员来获取元素 |
string 对应get set del命令。
list 对应的方法: rpush(将给定的值推入列表的有段), lrange(获取列表在戈丁范围上的所有值), lindex(获取列表在给定位置上的单个元素), lpop(从列表的左端弹出一个值,并返回被弹出的值)
例: rpush list-key item ; lrange list-key 0 -1 ; lindex list-key 1 ; lpop list-key
set 对应的方法:sadd(将给定元素添加到集合), smembers(返回集合包含的所有元素), sismember(检查给定元素是否存在于集合中), srem(如果给定的元素存在于集合中,那么移除这个元素)
hash散列表 对应的方法:hset(在散列里关联起给定的键值对), hget(获取指定散列键的值), hgetall(获取散列包含的所有键值对), hdel(如果给定键存在于散列里面,那么移除这个键)
zset 有序集合 对应的方法: zadd(将一个带有给定分支的成员添加到有序集合里面), zrange(根据元素在有序排列中所处的位置,从有序集合里面获取多个元素,可以添加withscore来输出值对应的分值), zrangebyscore(获取有序集合在给定分值范围内的所有元素), zrem(如果给定成员存在于有序集合,那么移除这个元素)