如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

时间:2022-06-29 05:13:55

1、keys  遍历出所有的key

一般不在出产环境使用

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

2、dbsize key的总数

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

3、exists key

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

4、del key  删除指定key-value

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

5、expire key secods  设置几多秒过期

ttl  还剩几多秒过期

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

persist 打消过期时间

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

6、type 返回key的类型

二、单线程

一个次只能执行一个命令

拒绝长慢命令(keys等)

为什么单线程还这么快

1、纯内存(主要)

2、非梗阻IO

3、制止线程切换和竞态消耗

三、数据类型

1、字符串

类型:可以存字符串、整型、二进制、json等

巨细:可以存512M

场景:缓存、计数器

命令:

1.1、get、set、del

1.2、set k v 不管k是否存在,,都设置

setnx k v    k不存在才设置

set k v xx    k存在才设置

1.3、mset 批量设置

mget 批量获取

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

1.5

getset key newvalue   设置新的key并返回旧value

append key value    将value追加到旧的value

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

1.6

incrbyfloat 增加浮点数

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

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

1.7、适合做计数器,单进程无竞争

incr    自增1,如果key不存在为1

decr   自减1,如果key不存在为-1

incrby 自增k,如果key不存在为k

decrby 自减key,如果key不存在为-k

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

使用场景:缓存应用

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

2、哈希

一个键对应多个键值的布局,可以理解为小redis

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

哈希的API操纵都是以h开头

2.1、hset、hget、hdel

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

2.2

hexists  key是否存在field

hlen      key中field的总数

2.3

hmget  批量获取

hmser   批量设置

2.4

hgetall

2.5、hsetnx、hincrby、hincrbyfloat

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

使用场景

统计每个用户小我私家主页的访谒量

hincrby user:1:info pageview count

缓存储存视频根基信息

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

编程比拟:

第一种:将整体数据序列化存进字符串

第二种:将数据分袂存进字符串

第三种:将数据存进哈希

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

4、列表

有序、可反复、摆布两边可以插入弹出

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

列表的API都以L开头

4.1、增

rpush  从右边插入

lpush   从左边插入

linsert  key before|after value newvalue在指定的值前后插入数据

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

4.2、删

lpop  从左弹出

rpop  从右弹

lrem key count value 按照count值,从列表中删除所有与balue相等的值

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

4.3、查

lrange

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

lindex 

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

llen 

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

4.4、改

lset

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

4.5、 查漏补缺

blpop

brpop

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

4.6、使用场景

微博时间轴

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

4.7、TIPS

1、栈

2、行列队伍

3、有固定数量的列表

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

5、调集

调集内不能反复、无序、撑持调集间操纵

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

5.1、调集内

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

使用场景

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

可以用在点赞、抽奖中

5.2、调集间

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

使用场景:

配合存眷、配合粉丝 

6、有序调集

特点:

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

API

6.1、zadd  添加元素

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

6.2、zrem 删除元素

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

6.3、zscore 获取分数

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

6.4、zincrby   增加或减少分数

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

6.5、zcard     返回元素总个数

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

实例:

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

6.6、zrange  返回指定索引范畴内升序元素

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

6.7、zrangebyscore  返回制定分数范畴的升序元素

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

6.8、zermrangebyrank

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

6.9、zremrangbyscore  删除指定分数的升序元素

如果key不存在为-k 使用场景:缓存应用 2、哈希 一个键对应多个键值的结构

使用场景:排行榜