Redis基本命令使用::string篇

Redis有6大基本类型,分别是字符串(String)、列表(List)、集合(set)、哈希结构(hash)、有序集合(zset)和基数(HyperLogLog)

redis在线体验地址:http://try.redis.io/

字符串(String)

介绍:

字符串是Redis中最基本的数据类型,数据以二进制的形式存储于内存中,所以Redis的字符串可以是任何形式的数据,比如JPEG图像、序列化的Ruby对象等。

字符串最大可存储512MB的数据,但一般一个字符串容量过大,会直接影响存储和查询的效率。字符串有两种编码方式:raw和embstr,根据字符串长度自动选择使用哪一种编码,目前最新版的长度是44个字节,字符串长度小于等于44个字节,则使用embstr编码,大于44个字节则使用raw编码,两种编码方式这里就不作详解,有兴趣的可以谷歌一下。

创建缓存

  1. 创建一个缓存

    • 命令格式:set key value

    • 🌰

      1
      2
      3
      4
      set cc 'niubility'

      ---
      创建一个key为cc,值为niubility的缓存
  2. 批量创建缓存

    • 命令格式:mset key value [key value ...]

    • 🌰

      1
      2
      3
      4
      mset cc1 1 cc2 2 cc3 3

      ---
      创建三个缓存,key:value分别为cc1:1, cc2:2, cc3:3
    • 命令格式:msetnx key value [key value ...]

      🌰

      1
      2
      3
      4
      5
      msetnx cc1 11 cc2 22 cc5 5 cc6 6

      ---
      此命令只会将尚不存在的key值创建到缓存中,已经存在的key则忽略
      * cc1、cc2已存在于缓存中,所以不会创建/更新成功,cc5、cc6不存在于缓存中,会创建
  3. 创建一个带过期时间的缓存

    • 命令格式:setex key time value

    • 🌰

      1
      2
      3
      4
      setex cc1 10 234

      ---
      设置key:value为cc1:234且过期时间为10秒的缓存
  4. 设置一个不存在key的value,若key已存在则不设置

    • 命令格式:setnx key value

    • 🌰

      1
      2
      3
      4
      setnx cc5 12

      ---
      若cc5的key不存在于缓存中,则创建key:value为cc5:12的缓存,否则不执行创建
  5. 组合创建一个缓存(缓存过期时间、是否覆盖)

    • 命令格式:set key value [EX|PX time] [NX|XX]

      解析:

      1
      2
      3
      4
      5
      6
      7
         EX:表明过期时间为秒

      PX:表明过期时间为毫秒

      NX:若key不存在则执行,否则不执行,与XX相反

      XX:若key存在则执行,否则不执行,与NX相反
    • 🌰

      1
      2
      3
      4
        set cc1 123 EX 20 XX

      ---
      若cc1已存在则创建过期时间为20秒的key:value = cc1:123
  6. 将key设置为新值的同时返回原值

    • 命令格式:getset key value

    • 🌰

      1
      2
      3
      4
      getset cc1 1

      ---
      若key不存在,则返回nil

读取缓存

  1. 读取一个key的缓存值

    • 命令格式:get key

    • 🌰

      1
      2
      3
      4
      get cc1

      ---
      读取key=cc1的值
  2. 批量读取一批数据

    • 命令格式:mget key [key ...]

    • 🌰

      1
      mget cc1 cc2 cc3
  3. 截取字符串并返回

    • 命令格式:getrange key start end

    • 🌰

      1
      2
      3
      4
      getrange cc1 1 12

      ---
      字符串下标以0开始,若start超出字符串长度或key不存在,则返回空字符串

其他操作

  1. 将value加1( value必须为整数 )[ 可用于阅读量、点赞数等简单统计类的功能应用 ]

    • 命令格式:incr key

    • 🌰

      1
      2
      3
      4
      incr cc1

      ---
      每次调用均对value进行+1操作
  2. 给value加上某个数( num必须为整数 )

    • 命令格式:incrby key num

    • 🌰

      1
      2
      3
      4
      incrby cc1 100

      ---
      给cc1的值加上100
  3. 给value加上某个浮点数

    • 命令格式:incrbyfloat key num

    • 🌰

      1
      incrbyfloat cc1 0.2
  4. 给value减1

    • 命令格式:decr key

    • 🌰

      1
      2
      3
      4
      decr cc1

      ---
      每次调用均对value进行-1操作
  5. 给value减去某个数( num必须为整数 )

    • 命令格式:descby key num

    • 🌰

      1
      2
      3
      4
      decrby cc1 100

      ---
      给cc1的值减去100
  6. 查看value的长度

    • 命令格式:strlen key

    • 🌰

      1
      strlen cc1

目前先整理这些,都是一些基础的命令,随后再写一篇Java中使用Jedis操作字符串的随笔。