Redis五种基本类型

导读:本篇文章讲解 Redis五种基本类型,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

一、简单介绍

1、string字符串类型

2、hash哈希类型

3、list列表类型

4、set集合类型

5、zset有序集合类型

二、命令

五种基本类型命令简易表格

1、String字符串类型

2、hash 哈希类型

3、list 列表类型

4、set 集合类型 

5、zset 有序集合类型


一、简单介绍

1、string字符串类型

  1. String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
  2. String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
  3. String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M

2、hash哈希类型

  1. Redis hash 是一个键值对集合。
  2. Redis hash是一个string类型的fieldvalue的映射表,hash特别适合用于存储对象。类似Java里面的Map<String,Object>

3、list列表类型

  1. 单键多值
  2. Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
  3. 它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。

Redis五种基本类型

4、set集合类型

  1. Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。
  2. Redis的Set是string类型的无序集合它底层其实是一个value为nullhash,所以添加,删除,查找的复杂度都是O(1)
  3. 一个算法,随着数据的增加,执行时间的长短,如果是O(1),数据增加,查找数据的时间不变

5、zset有序集合类型

  1. Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。
  2. 不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。
  3. 因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。
  4. 访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。

二、命令

五种基本类型命令简易表格

存储

删除

查询

String

set

del

get

hash

hset

hdel

Hget

hgetall

List

Lpush  rpush

Lpop  rpop

Lrange

Set

sadd

srem

smembers

zset

Zadd

zrem

zrange

1、String字符串类型

1)简单的存储、获取、删除

存储  set  key value

获取  get  key

删除  del  key

查看数据类型   type key 

查看键是否存在  keys  key 

 

2)其他操作

        

​
append  <key><value>    
        将给定的<value> 追加到原值的末尾

strlen  <key>    
        获得值的长度

setnx  <key><value>    
        只有在 key 不存在时    设置 key 的值

incr  <key>

        将 key 中储存的数字值增1

        只能对数字值操作,如果为空,新增值为1

decr  <key>

        将 key 中储存的数字值减1

        只能对数字值操作,如果为空,新增值为-1

incrby / decrby  <key><步长>
        将 key 中储存的数字值增减。自定义步长。

​

2、hash 哈希类型

1)简单的存储、获取、删除

存储   hset  key field value

获取指定的field对应的值   hget key field

获取所有的field和value    hgetall  key

删除   hdel key field

2)其他操作

​
hmset <key1> <field1> <value1> <field2> <value2>... 
        批量设置hash的值

hexists <key1> <field>
        查看哈希表 key 中,给定域 field 是否存在。 

hkeys <key>
        列出该hash集合的所有field

hvals <key>
        列出该hash集合的所有value

hincrby <key> <field> <increment>
        为哈希表 key 中的域 field 的值加上增量 1   -1

hsetnx <key> <field> <value>
        将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 

​

3、list 列表类型

1)简单的存储、获取、删除

可以一个元素到列表的头部(左边)或者尾部(右边)
添加:    lpush key value   将元素加入列表左边

         Rpush key value  将元素加入列表的右边

获取:    Lrange  key  start end    获取范围
                              0开始  -1 结尾

删除:    Lpop  key  删除列表最左边的元素   并将元素返回

         Rpop  key  删除列表最右边的元素,并将元素返回

2)其他操作

rpoplpush  <key1><key2>
        从<key1>列表右边吐出一个值,插到<key2>列表左边。

lindex <key><index>
        按照索引下标获得元素(从左到右)

llen <key>
        获得列表长度 

linsert <key>  before <value><newvalue>
        在<value>的后面插入<newvalue>插入值

lrem <key><n><value>
        从左边删除n个value(从左到右)

lset<key><index><value>
        将列表key下标为index的值替换成value

4、set 集合类型 

不允许重复元素

1)简单的存储、获取、删除

存储:sadd key value

获取:smembers  key

删除:srem key value 
        删除set集合中的某个元素

2)其他操作

sismember <key> <member>
        判断集合<key>是否为含有该<member>值,有1,没有0

scard <key>
        返回该集合的元素个数。

spop <key>
        随机从该集合中吐出一个值。

srandmember <key> <n>
        随机从该集合中取出n个值。不会从集合中删除 。

smove <source> <destination> <member>
        把集合中一个值从一个集合移动到另一个集合

sinter <key1> <key2>
        返回两个集合的交集元素。

sunion <key1> <key2>
        返回两个集合的并集元素。

sdiff <key1> <key2>
        返回两个集合的差集元素(key1中的,不包含key2中的)

5、zset 有序集合类型

1)简单的存储、获取、删除

​
不允许重复元素,且元素有顺序,每个元素都会关联一个double类型的分数,Redis正是通过分数来为集合中的成员进行从小到大的排序。
默认升序
存储:zadd  key score value

获取:zrange key start stop [WITHSCORES]    
        start: 0  stop -1

删除:zrem  key value

​

2)其他操作

zrangebyscore key minmax [withscores] [limit offset count]
        返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
        有序集成员按 score 值递增(从小到大)次序排列。 

zrevrangebyscore key maxmin [withscores] [limit offset count]               
        同上,改为从大到小排列。 

zincrby <key> <increment> <value>
        为元素的score加上增量

zcount <key> <min> <max>
        统计该集合,分数区间内的元素个数 

zrank <key> <value>
        返回该值在集合中的排名,从0开始。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/88067.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!