数据类型与API(2)String

简介: String (字符串)1. 使用场景缓存 (key-value、存储json)分布式锁计数器Bits


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"


3. 实战



分布式ID生成器

image.png

相关文章
|
3月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
3月前
|
存储 程序员 API
八股day05_API、String对象和集合
day05_API、String对象和集合
|
3月前
|
存储 缓存 NoSQL
深入理解Redis数据类型String原理
本文深入探讨了Redis中String数据类型的实现原理和使用场景,基于Redis 5.0版本进行分析。
深入理解Redis数据类型String原理
|
4月前
|
Java 开发者 Python
Python中,字符串(String)是一种不可变的数据类型
Python中,字符串(String)是一种不可变的数据类型
|
5月前
|
存储 缓存 Java
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
45 2
|
5月前
|
JavaScript 前端开发 索引
JavaScript有7个数据类型:Number, String, Boolean, Null, Undefined, Symbol(BES6)和BigInt(ES10)组成基本类型
【6月更文挑战第25天】JavaScript有7个数据类型:Number, String, Boolean, Null, Undefined, Symbol(BES6)和BigInt(ES10)组成基本类型,而Object包括Array、Function等是引用类型。Objects可以包含键值对,Array是特殊的Object。Functions也是对象。`null`和`undefined`被视为特殊的原始值。
52 1
|
4月前
|
缓存 NoSQL Redis
Redis深度解析:核心数据类型之string
Redis 数据类型包括String、Hash、List、Set和Sorted Set。对于String类型的主要操作, 此外,还有通用的Key操作。
|
5月前
|
Java API 索引
java中String类常用API
java中String类常用API
|
5月前
|
存储 Java API
JavaSE——常用API(2/3)-String使用时的注意事项、String的应用案例
JavaSE——常用API(2/3)-String使用时的注意事项、String的应用案例
40 1
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型