慕课网-一站式学习Redis从入门到高可用分布式实践-第2章-API的理解和使用-字符串

字符串

1.结构和命令

字符串键值结构,value最大可以512MB,但是不建议这么大,大概 100KB就可以了 

使用场景

1)缓存

2)计数器

3)分布式锁

4)......

 

命令

1)get

获取key对应的value

get key

o(1)

2)set

设置key-value

set key value

o(1)

3)del

删除key-value

del key

o(1)

set hello world
get hello
del hello
get hello

4)incr

key自增1,如果key不存在,自增后get(key)=1

incr key

o(1)

5)decr

key自减1,如果key不存在,自增后get(key)=-1

decr key

o(1)

6)incrby

key自增1,如果key不存在,自增后get(key)=k

incrby key k

o(1)

7)decrby

key自减1,如果key不存在,自减后get(key)=k

decrby key k

o(1)

get counter
incr counter
get counter
incrby counter 99
decr counter
get counter

8)set

不管key是否存在,都设置

set key value

o(1)

9)setnx

key不存在,才设置

setnx key value

o(1)

10)set xx

key存在,才设置

set key value xx

o(1)

exists php
set php good
setnx php bad
set php best xx
get php
exists java
setnx java best
set java easy xx
get java
exists lua
set lua hehe xx

11)mget

批量获取key,原子操作

mget key1 key2 key3 ...

o(n)

12)mset

批量设置key-value

mset key1 key2 key3 ...

o(n)

mset hello world java best php good
mget hello java php

 

13)getset

set key new value并返回旧的value

getset key newvalue

o(1)

14)append

将value追加到旧的value

append key value

o(1)

15)strlen

返回字符串的长度(注意中文)

strlen key

o(1)

set hello world
getset hello php
append hello ",java"
get hello
strlen hello
set hello "足球"
strlen hello

16)incrbyfloat

增加key对应的值3.5

incrbyfloat key 3.5

o(1)

17)getrange

获取字符串指定下标所有的值

getrange key start end

o(1)

18)setrange

设置指定下标所有对应的值

setrange key index value

o(1)

incr counter
incrbyfloat counter 1.1
get counter
set hello javabest
getrange hello 0 2
setrange hello 4 p
get hello

2.快速实战

#记录网站每个用户个人主页的访问量?
#incr userid:pageview #单线程:无竞争

#缓存视频的基本信息(数据源在 MySQL中)伪代码
public VideoInfo get(long id) {
    String redisKey = redisPrefix + id;
    VideoInfo videoInfo = redis.get(redisKey);
    if (videoInfo == null) {
        videoInfo = mysql.get(id);
        if (videoInfo != null) {
            //序列化
            redis.set(redisKey, serialize(videoInfo))
        }
    }
    return videoInfo;    
}

#分布式id生成器
#incr id

3.字符串总结

posted on 2019-11-13 12:47  herisson_pan  阅读(16)  评论(0)    收藏  举报

导航