redis基本数据类型学习笔记待续

0 环境

  • 系统环境: centos7
  • 编辑器: xshell

1 前言

在redis中 key--> 字符串 不同的key对应的值不同 则具备不同的数据结构 5种数据结构(主指值的数据类型不同)

2 string(字符串)

字符串键是redis最基本的键值对类型(key-value形式 键值可以文字 图片。。)

  • set(为字符串键设置值)

set给一个key赋值 实际情况 新加入的键可能会出现在数据库的任何位置上(无序)

复杂度: O(1)

覆盖规则 相同的key赋值 后来的覆盖前来的

不过现在提供nx选项 只有key对应的value没有值的执行设置

// 伪代码 只为容易理解 别钻牛角尖
if(set.get(key)== null){
  set.get(key) = value;
}

setnx --> 输出的结果 成功1 失败0
set key value [nx|xx] nx --> 成功 ok 失败 nil xx正好与之相反

  • get(获取字符串键的值)

时间复杂度:O(1)

  • getset(获取旧值并设置新值)

复杂度:o(1)

getset类似:

string.get(key);
string.set(key, value);
  • mset(一次为多个字符串键设置值)

时间复杂度o(n) 命令mset key value [key value...]

  • mget(一次性获取多个字符串键的值)

时间复杂度o(n) 命令mget key[key ...]

  • msetnx(只在键不存在的时候 一次为多个字符串键设置值)

时间复杂度o(n) 命令msetnx key value [key value...]

// 只是为了方便理解
list a = new arraylist();
string.foreach(key:keys){
  if(string.get(key)!= null){
    return;
  }
  a.add(string.get(key));
}
  • STRLEN(获取字符串值的字节长度)

复杂度:o(1)

  • 字符串索引

正数索引从0(头)开始
负数索引从最末尾-1开始 从后往前递减 从前往后递增计算方式(-xxx.size。。。-1)

  • GETRANGE(获取字符串值索引范围的内容)

时间复杂度o(n)

命令GETRANGE key start end 类似数组的切片list[start:end]

猜你喜欢

转载自www.cnblogs.com/my-ordinary/p/12618244.html