Redis学习笔记 - 数据类型与API(2)String

String (字符串)

1. 使用场景

  • 缓存 (key-value、存储json)
  • 分布式锁
  • 计数器
  • Bits

2. 常用命令

命令 含义 时间复杂度
set、get、del 设置、获取、删除key-value O(1)
setnx、set xx 根据key是否存在设置key-value O(1)
incr、decr、incrby、decrby、incrbyfloat 计数 O(1)
mget、mset 批量操作key-value O(N),N 为给定 key 的数量
getset 为key设置新值,并返回旧值 O(1)
append 将value追加到旧的value后 O(1)
strlen 返回字符串的长度 O(1)
setrange、getrange 设置、获取字符串指定下标对应的值 O(1)

get、set、del

  • get key (获取key对应的value)
  • set key value (设置key-value)
  • del key (删除key-value)

incr、decr、incrby、decrby

  • incr key (key自增1,如果key不存在,自增后get(key)=1)
  • decr key (key自减1,如果key不存在,自增后get(key)=-1)
  • incrby key n (key自增n,如果key不存在,自增后get(key)=n)
  • decrby key n (key自减n,如果key不存在,自增后get(key)=-n)

set、setnx、set xx

  • set key value (不管key是否存在,都设置)
  • setnx key value (key不存在,才设置)
  • set key value xx (key存在,才设置)
127.0.0.1:6379> exists php
(integer) 0
127.0.0.1:6379> set php good
OK
127.0.0.1:6379> setnx php bad
(integer) 0
127.0.0.1:6379> set php best xx
OK
127.0.0.1:6379> get php
"best"
127.0.0.1:6379> exists java
(integer) 0
127.0.0.1:6379> setnx java best
(integer) 1
127.0.0.1:6379> exists lua
(integer) 0
127.0.0.1:6379> set lua hehe xx
(nil)

mget、mget

  • mget key1 key2 key3 ... (批量获取key,原子操作)
  • mset key1 value1 key2 value2 key3 value3 ... (批量设置key-value)

getset、append、strlen

  • getset key newvalue (为key设置新值,并返回旧值)
  • append key value (将value追加到旧的value后)
  • strlen key (返回字符串的长度(注意中文))
127.0.0.1:6379> get java
"best"
127.0.0.1:6379> getset java hello
"best"
127.0.0.1:6379> get java
"hello"
127.0.0.1:6379> append java world
(integer) 10
127.0.0.1:6379> get java
"helloworld"
127.0.0.1:6379> strlen java
(integer) 10

incrbyfloat、getrange、setrange

  • incrbyfloat key 3.5 (为key对应的值增加3.5)
  • getrange key start end (获取字符串指定下标所有的值)
  • setrange key index value (设置指定下标所对应的值)
127.0.0.1:6379> incr counter
(integer) 1
127.0.0.1:6379> incrbyfloat counter 1.1
"2.1"
127.0.0.1:6379> get counter
"2.1"
127.0.0.1:6379> set hello javabest
OK
127.0.0.1:6379> getrange hello 0 2
"jav"
127.0.0.1:6379> setrange hello 4 p
(integer) 8
127.0.0.1:6379> get hello
"javapest"

更多 String 相关命令:http://www.redis.cn/commands....

3. 实战

分布式ID生成器


相关内容:

Redis学习笔记 - 数据类型与API(1)Key
Redis学习笔记 - 数据类型与API(2)String
Redis学习笔记 - 数据类型与API(3)List
Redis学习笔记 - 数据类型与API(4)Set
Redis学习笔记 - 数据类型与API(5)Sorted Set
Redis学习笔记 - 数据类型与API(6)Hash

Redis学习笔记 - 数据类型与API(2)String相关推荐

  1. Redis学习笔记 - 数据类型与API(1)Key

    Redis学习笔记 - 数据类型与API(1)Key Key相关命令 1. 常用命令 命令 含义 时间复杂度 keys 查找所有符合给定模式 pattern 的 key O(N), N 为数据库中 k ...

  2. Redis学习笔记(数据结构篇)String

    书籍推荐:<Redis使用手册> 作者:黄建宏 String 是最基本的键值对类型,这种类型的键值对会将数据库中的单独的键与单独的值关联起来.被关联的键和值既可以是简单的字符.文字,也可以 ...

  3. Redis学习笔记(一) 数据类型事务异常Jredis

    Redis学习笔记(一) NoSql概述 Nosql四大分类 Redis入门 简介 Windows安装 基础使用 问题 Redis4.0之前为什么是单线程 单线程为什么这么快 Redis4.0后的多线 ...

  4. StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用

    StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 原文: StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 Connec ...

  5. Redis学习笔记——SpringDataRedis的使用

    与Spring集成 我需要哪些jar包? <dependency><groupId>org.springframework.data</groupId><ar ...

  6. Redis学习笔记(B站狂神说)(自己总结方便复习)

    Redis学习笔记B站狂神说 redis: 非关系型数据库 一.NoSQL概述 1.为什么要用Nosql 1.单机Mysql的年代 思考一下,这种情况下:整个网站的瓶颈是什么? 1.数据量如果太大,一 ...

  7. Redis(学习笔记)

    Redis学习笔记 1.NoSQL数据库 1.1解决的问题 1.1.1解决CPU及内存压力 1.1.2解决IO压力 1.2NoSQL数据库概述 1.2.1什么是NoSQL数据库 1.2.2适用与不适用 ...

  8. Redis学习笔记①基础篇_Redis快速入门

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  9. Redis学习笔记②实战篇_黑马点评项目

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  10. StackExchange.Redis学习笔记(五) 发布和订阅

    StackExchange.Redis学习笔记(五) 发布和订阅 原文:StackExchange.Redis学习笔记(五) 发布和订阅 Redis命令中的Pub/Sub Redis在 2.0之后的版 ...

最新文章

  1. 虚拟机无法使用网卡桥接模式
  2. 时隔四年回归的澎湃芯片,能为雷军赌上一生荣耀的造车创业带来什么?
  3. Java开源——常见J2EE框架简介
  4. [美文欣赏]清华胡宇迪教授谈
  5. html安卓关闭输入面板,tabletpc输入面板关闭不了怎么办(tablet pc输入面板关闭方法)...
  6. 20应用统计考研复试要点(part28)--简答题
  7. 智能家居 (5) —— LD3320语音模块二次开发
  8. android uboot获取mac地址,uboot生成随机的MAC地址
  9. 化学人学python有前途吗-转载:python之蟒开启理论计算化学的新时代
  10. php微信转跳浏览器代码,通用微信QQ跳转浏览器打开代码
  11. Linux下批量修改文件名方法
  12. 毕业论文知网查重心得体会——吐血奉献
  13. 数模学习第四天---回归系数假设检验
  14. 转载_BlueTooth: 蓝牙基带
  15. VMware Workstation 无法连接到虚拟机。请确保您有权限运行该程序、访问改程序使用的所有目录以及访问所有临时文件目录。未能将管道连接到虚拟机: 所有的管道范例都在使用中。
  16. 小米新机红米与QNAP NAS TS-212P易迅网同时首发
  17. java开发的岗位职责,写给正在求职的Java开发
  18. 首届掘金挑战者杯股票量化大赛报名开启
  19. 使用Python制作一个照片换底色的exe程序文件(详细教程)
  20. DataVisor进入中国一周年 成为人工智能大数据反欺诈行业领先者

热门文章

  1. Jzoj5231 序列问题
  2. win10 打开注册表
  3. CentOS7下GNOME桌面的安装
  4. win7上python2.7连接mysql数据库
  5. PC建立WIFI热点
  6. thinkphp __hash__
  7. 在Virtual Machine上运行Hello China的方法和工具
  8. Serengeti Accomodation
  9. 链表例题2:链表的倒数第k个节点是多少
  10. VS code不用集成终端如何修改并推送分支?