Redis数据类型
Redis数据类型
redis使用的是键值对来保存数据
key:全部都是字符串。 
value:有五种数据类型
key名需要自定义
key名不要太长,否则影响使用效率。 
按长度以小到大来查询。 
key名也不要太短,最好是有意义的名字。
String(字符串)
string 是redis最基本的类型,一个key对应一个value。 
字符串在redis中是二进制安全的,所以redis的string类型可以保存任何数据。
比如jpg图片或者json数据。
一个键最大能存储512MB。
二进制安全和数据安全是没有关系的。
MySQL-关系型数据库,二进制不安全。
Redis编码及解码只会发生在客户端,没有频繁编解码,执行效率很高。 
没有频繁编解码,不会出现乱码。
常用命令
- set key value赋值,如果赋予相同的key值,新的value会覆盖老的value。
- get key取值,若key不存在,就返回- nil。
- del key删除指定key。
- getset key value先获取该key的值,然后再设置该key的值。
- incr key将指定的key的value原子性的递增1,若key不存在,初始值为0,incr后增1。
- decr key将制定的key的value原子性的递减1。
- append key value拼凑字符串,若key不存在,则创建key。返回拼接后字符串的长度。
- incrby key increment将指定的key的value原子性增加increment。
- decrby key decrement将指定的key的value原子性减少increment。
使用环境
- 主要用于保存json格式的字符串。
Hash(哈希)
一个键值对(key=》value)集合。
Redis hash是一个string类型的field和value的映射表。hash特别适用于存储对象。
每个hash可以存储2的32次方-1个键值对(40多亿)。
占用的磁盘空间极少。
常用命令
- hset key field value为指定的key设置field/value对。
- hmset key field value [field2 value2...]设置keyzhong多个键值对
- hget key field返回指定key中的field值。
- hmget key field1 field2返回指定field的value。
- hgetall key返回全部键值对。
- hdel key field1删除key中的field1字段。若key中只有一个field1字段,那么key将会被直接删除。
- del key删除整个key。
- hincrby key field increment若field的value数字,那么自增1。
- hexists key field判断某字段是否存在。
- hlen key获取key包含有多少字段。
- hkeys key获取所有的字段。
- hvals key获取所有的字段值。
List
Redis列表是最简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部和尾部。 
链表 添加删除效率极高。
Set
Redis的Set是string类型的无序集合。
可以理解为HshaSet 
集合是通过哈希表实现的,所以添加、删除,查找的复杂度都是O(1)。
sadd
添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
zset
Redis zset和set一样都是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数却可以重复。

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号