首页 > 其他 > 详细

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

时间:2020-04-02 18:26:57      阅读:66      评论:0      收藏:0      [点我收藏+]

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]

技术分享图片

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

原文:https://www.cnblogs.com/my-ordinary/p/12618244.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!