Redis五种基本类型

目录

一、简单介绍

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. 它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。

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开始。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值