Redis学习记录——(2)Redis数据类型

时间:2021-07-02 15:23:26   收藏:0   阅读:0

Redis数据类型:string

  1. 存储的数据:单个数据,最简单的数据存储类型,也是最常用的存储类型
  2. 存储数据格式:一个存储空间保存一个数据
  3. 存储内容:通常使用字符串,如果字符串以整数形式展示,可以作为数字操作使用

string类型数据基本操作:

string类型数据的扩展操作

      string 作为值类型操作,为数据库确保主键唯一

          redis用于控制数据库表主键ID,为数据库表主键提供生成策略,保证数据库表ID的唯一性

          此方案适用于所有数据库,且redis支持数据库集群

           incr  key (增加一个单位的值)

           incrby key increment(增加指定单位的值)

           incrbyfloat  key increment

           decr key (减少一个单位的值)

           decrby key increment(减少指定单位的值)

      

 redis控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作

 

           setex  key seconds  value  (单位:秒)

           psetex   key  milliseconds  value(单位:毫秒)

           注意:如果设置具有时效性的数据,当再次插入相同key的值,指定的生命周期则失效  

          

sting类型数据操作的注意事项

  1. 表示运行结果成功

               (int)0->false 失败

               (int)1->true  成功

         2.表示运行结果值       

               (int)4->4  4个

               (int)1->1  1个

         (nil)等同于null

             512MB

             9223372036854775807

Redis数据类型:hash

  1. 对一系列存储数据进行编组,方便管理,典型应用存储对象信息
  2. 一个存储空间保存多个键值对数据
  3. hash类型底层使用哈希表结构实现数据存储
  4. hash存储数据优化,如果field数量较少,存储结构优化为类数组结构,如果field数量多,存储结构使用HashMap结构

Hash类型数据基础操作

          hset key field value

          hget  key  field(获取单个数据)

          hgetall  key(获取所有数据)

          hdel key  field1  [field2]

          hmset key field1  value1 field2 value2 ...

          hmget key field1 field2 ..

          hlen key 

          hexists key field  

Hash的扩展操作

          hkeys key(获取所有的key)

          hvals key(获取所有的value)

          hincrby key field increment

          hincrbyfloat key field increment

          hsetnx key field value

Hash类型数据操作的注意事项

Redis数据类型:List

List数据类型

List类型基础操作

          lpush key [value1] [value2]...

          rpush key [value1] [value2]...

         lrange key strat stop

         lindex key index

         llen key

         lpop key 

         rpop key

 

List扩展操作

 

        blpop key1 [key2] timeout

 

 

        brpop key1 [key2] timeout

 

        lrem key count value

List类型注意事项

list中保存的数据都是string类型的,数据容量是有限的

list具有索引的概念,但是操作数据时通常以队列的形式进行入队出队操作,或以栈的形式进行入栈出栈操作

获取全部数据操作结束索引设置为-1(-1 表示的意思是索引的最后一个的意思)

list可以对数据进行分页操作,通常第一页的信息来自于List,第二页以及更多的信息通过数据库的形式加载

 

Redis数据类型:set

新的存储需求:存储大量数据,在查询方面提供更高的效率

需要的存储结构:能够存大量数据,高效的内部存储机制,便于查询

set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值不允许重复

set类型基础操作

       sadd key member1 [member2]...

       smembers key 

       srem key member1 [member2]

       scard key 

       sismember key member

 

set类型扩展操作

       srandmember key [count]

       spop key 

       sinter  key1 [key2]

      sunion key1 [key2]

       sdiff key1 [key2]

      sinterstore destination key1 [key2]

      sunionstore destination key1 [key2]

      sdiffstore destination key1 [key2]

      smove soure destination member

  1. set类型不允许数据重复,如果添加的数据在set中已经存在,那么只能保留一份
  2. set虽然于hash类型存储结构相同,但是无法启用hash中存储的那一部分 

 

 

Redis数据类型:sorted_set

新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序

需要的存储结构:新的存储模型,可以保存可排序的数据

sorted_set类型:在set的基础结构上添加了一个可排序的字段

sorted_set基础操作

      zadd key1 scorel member1 [scorel member2]

      zrange key start stop [WITHSCORES]

      zrevrange key start stop [WITHSCORES]

      zrem key member [member...]

      zrangebyscore key min max [WITHSCORES] [LIMIT]

      zrevrangbyscore  key max min [WITHSCORES]

      zremrangebyrank key start stop

      zremrangebyscore key min max

注意:

min 与max 用于限定搜索条件

start 与stop用于限定查询范围,作用于索引,表示开始可结束索引

offset与count用于限定查询范围,作用于查询结果,表示开始位置和数据总量

 

      zcard key

      zcount key min max

      zinterstore destination numkeys key [key....]

      zunionstore destination numkeys key [key...]

 

sorted_set扩展操作

       zrank key member

       zrevrank key member

       zscore key member

       zincrby key increment member

       time

注意事项:

score保存的数据也可以是一个双精度的double值,基于双精度浮点数的特征,可能会丢失精度,使用时要慎重

sorted_set底层存储还是基于set结构的,因此数据不能重复,如果重复添加相同数据,score值将被反复覆盖,保留最后一次修改的结果

评论(0)
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!