redis学习(二)redis数据类型 Date Types

redis学习(二)redis数据类型 Date Types

  redis是一种高级的key:value存储系统,其中value支持五种数据类型:

  1. 字符串(Strings)
  2. 列表(Lists)
  3. 集合(Sets)
  4. 哈希(Hashes)
  5. 有序集合(Sorted sets)

关于数据的操作要在cli状态下进行。

字符串(Strings)

  字符串是一种最基本的Redis值类型。Redis字符串是二进制安全的,这意味着一个Redis字符串能包含任意类型的数据,例如: 一张JPEG格式的图片或者一个序列化的Ruby对象。
  一个字符串类型的值最多能存储512M字节的内容。

  • demo1:最开始的例子

      127.0.0.1:6379> SET name "Yco"
      OK
      127.0.0.1:6379> GET name
      "Yco"

SET key value命令用于设置一对字符串型的key-value
GET key命令用于取值

  • demo2:遇到数值操作,redis会将字符串类型转换成数值

      127.0.0.1:6379> SET num "6"
      OK
      127.0.0.1:6379> INCR num
      (integer) 7
      127.0.0.1:6379> GET num
      "7"
      127.0.0.1:6379> DECR num
      (integer) 6
      127.0.0.1:6379> GET num
      "6"

INCR key命令,用于自增操作
DECR key命令,用于自减操作
INCR等命令是原子的,可以利用它们来实现原子计数效果。

列表(Lists)

  Redis列表是简单的字符串列表,按照插入顺序排序。 你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

  • demo3:lists的简单操作

      //在list最左端插入 aa
      127.0.0.1:6379> LPUSH alist "a"
      (integer) 1
      //在list最右端插入 b
      127.0.0.1:6379> RPUSH alist "b"
      (integer) 2
      //在list最左端插入 c
      127.0.0.1:6379> LPUSH alist "c"
      (integer) 3
      //遍历list中下标0到1得元素
      127.0.0.1:6379> LRANGE alist 0 1
      1) "c"
      2) "a"
      //遍历list中下标0到倒数第1个元素
      127.0.0.1:6379> LRANGE alist 0 -1
      1) "c"
      2) "a"
      3) "b"

    LPUSH命令,插入一个新元素到列表头部
    RPUSH命令,插入一个新元素到列表尾部
    LRANGE key start end命令,从start下标开始,end下标结束,遍历key。(end为负数时,遍历倒数到倒数第end个元素为止)
      当对一个空key执行其中某个命令时,将会创建一个新列表。 类似的,如果一个操作要清空列表,那么key会从对应的key空间删除。(不需要新建,或者删除列表)

集合(Sets)

  Redis集合是一个无序的字符串合集。你可以以O(1)的时间复杂度完成添加,删除以及测试元素是否存在的操作。
  Redis集合有着不允许相同成员存在的优秀特性。向集合中多次添加同一元素,在集合中最终只会存在一个此元素。实际上这就意味着,在添加元素前,你并不需要事先进行检验此元素是否已经存在的操作。

  • demo4:sets的简单操作

      //向set中添加元素
      127.0.0.1:6379> SADD aset "ykx"
      (integer) 1
      127.0.0.1:6379> SADD aset "Yco"
      (integer) 1
      //列出set所有元素
      127.0.0.1:6379> SMEMBERS aset
      1) "ykx"
      2) "Yco"
      //判断元素是否在set中,返回1存在
      127.0.0.1:6379> SISMEMBER aset "ykx"
      (integer) 1
      //新建另一个集合
      127.0.0.1:6379> SADD otherset "1"
      (integer) 1
      127.0.0.1:6379> SADD otherset "2"
      (integer) 1
      //合并集合
      127.0.0.1:6379> SUNION aset otherset
      1) "2"
      2) "1"
      3) "ykx"
      4) "Yco"

    SADD命令,向集合中添加一个元素。
    SMEMBERS命令,遍历集合。
    SISMEMBER命令,判断一个元素是否在集合中,存在返回1,否则返回0。
    SUNION命令,合并两个集合

哈希(Hashes)

  Redis Hashes是字符串字段和字符串值之间的映射,所以它们是完美的表示对象(eg:一个有名,姓,年龄等属性的用户)的数据类型。

  • demo5:hashes的简单操作

      //新建一个hash
      127.0.0.1:6379> HMSET user:001 username "Yco"       password "123456" age "20"
      OK
      //列出hash内容
      127.0.0.1:6379> HGETALL user:001
      1) "username"
      2) "Yco"
      3) "password"
      4) "123456"
      5) "age"
      6) "20"
      //更改hash内容
      127.0.0.1:6379> HSET user:001 age "21"
      (integer) 0

HMSET命令,新建hash并赋值。
HGETALL命令,列出hash内容。
HSET命令,更改hash内容。

有序集合(Sorted sets)

  Redis有序集合和Redis集合类似,是不包含相同字符串的合集。它们的差别是,每个有序集合的成员都关联着一个权值(score),这个权值用于把有序集合中的成员按最低分到最高分排列

  • demo6:有序集合的基本操作

      127.0.0.1:6379> ZADD zset 1 "ykx"
      (integer) 1
      127.0.0.1:6379> ZADD zset 2 "Yco"
      (integer) 1
      127.0.0.1:6379> ZRANGE zset 0 1
      1) "ykx"
      2) "Yco"

ZADD命令,向有序集合中添加一个元素
ZRANGE命令,遍历有序集合

总结:

  基本的指令还是挺好记的,指令很人性化,指令与什么有关,指令就以什么字母开头。

转载于:https://www.cnblogs.com/yuekx/p/5109736.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值