1、客户端连接 :redis-cli ,通过help命令可知晓怎么使用redis.

同时,通过service redis-cli -help连接,也可以查看连接时

asp.net redis 客户端数 redis客户端如何使用_字节码

可以通过help @string来查看详细介绍

   

2、redis的五种value

Redis 中不管类型如何,都会存在2个序列。

正序列

0

1

2

3

4

5

序列

a

b

c

d

e

f

反序列

-6

-5

-4

-3

-2

-1

   

Key-value:

①string

当年存入一个中文,由于它根据不同的编码会生成不同的字节码。会出现如下情况,查询出来是字节码。

asp.net redis 客户端数 redis客户端如何使用_字节码_02

asp.net redis 客户端数 redis客户端如何使用_字符串_03

   

当然,我们也可以用如下方法启动redis,使之直接查询结果而非字节码。

   

编码类型是依据每个客户端自行选择的,这是redis给的一项权利。

   

redis的二进制安全

asp.net redis 客户端数 redis客户端如何使用_字节码_04

   

二进制安全,说白了就是传输的文件内容不能改变。因为有很多字节码解析方式GBK\utf-8扽等,在redis把编码格式给了用户,所以为了不取出乱码文件,严格统一编码格式。

   

   

1、字符串

①、get\set用法

asp.net redis 客户端数 redis客户端如何使用_redis_05

   

asp.net redis 客户端数 redis客户端如何使用_redis_06

   

asp.net redis 客户端数 redis客户端如何使用_字符串_07

   

②append

asp.net redis 客户端数 redis客户端如何使用_字符串_08

   

asp.net redis 客户端数 redis客户端如何使用_redis_09

   

③strlen 查看字符串长度

asp.net redis 客户端数 redis客户端如何使用_字符串_10

   

asp.net redis 客户端数 redis客户端如何使用_redis_11

   

④setrange

从指定的偏移量开始,在键处覆盖字符串的一部分

asp.net redis 客户端数 redis客户端如何使用_字节码_12

   

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_13

   

⑤getrange

获取存储在键上的字符串的子字符串

   

asp.net redis 客户端数 redis客户端如何使用_字符串_14

   

asp.net redis 客户端数 redis客户端如何使用_字节码_15

   

2、bitmap(缓存、统计方面)

⑤bitop和bitcount相关的命令皆是位操作

Bitcount key start end

Key:已存在的key

Start: 起始位

End: 结束位

一个key,如果你不确定它的长度,而你又想统计它全部为1的总数:bitcount k1 0 -1

   

asp.net redis 客户端数 redis客户端如何使用_字符串_16

Operation: 与或非(or and)

Destkey: 生成的结果集的key

Key… 要参与位运算的key

   

⑥setbit 和 gitbit

*** setbit p1 p2 p3

*p1: key

*p2: 1byte = 8bit(0-7)(可以是0~) 超过7 则多一个byte.

*p3: 1或0

场景1 以浏览和未浏览的区分

asp.net redis 客户端数 redis客户端如何使用_redis_17

   

场景2

可以实现 统计一年内登陆天数

例如:一年365天,默认为0,登陆为1。

第一天开始

1

1

0

1

0

1

0

0

~~~

0

0

0

0

0

0

0

0

最后一天

0

1

0

1

1

0

0

1

------------------------------------------------------------------------------

如上图数据,配置setbit:

Setbit k1 0 1 , Setbit k1 1 1 , Setbit k1 3 1,Setbit k1 5 1

   

Setbit k1 364 1,Setbit k1 361 1,Setbit k1 360 1,Setbit k1 358 1

此时,要统计今年登陆的天数只要计算k1中的value=1的个数。

Bitcount:特殊提示: setbit的key,随着你的设置长度而增加。

asp.net redis 客户端数 redis客户端如何使用_字符串_18

   

   

场景3

统计一个月内的活跃用户

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_19

???问题,求连续登陆2天以上的用户???

asp.net redis 客户端数 redis客户端如何使用_redis_20

查询结果:3人中连续登陆3天的只有1人。

asp.net redis 客户端数 redis客户端如何使用_字节码_21

查询结果:3人中连续登陆2天的只有2人。

   

3、数值(秒杀、详情页、点赞、评论)

①通过type key 查询value存储的类型

asp.net redis 客户端数 redis客户端如何使用_redis_22

   

②通过object+" "+" "+encoding key的方式可以查询redis底层以什么格式存储这些值的。

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_23

   

④incr 和 decr

asp.net redis 客户端数 redis客户端如何使用_redis_24

   

Incr 和 decr延展

incrby和decrby,后接增幅

   

②list

asp.net redis 客户端数 redis客户端如何使用_redis_25

   

   

Lrange = list + range

a、查询list指定范围。

asp.net redis 客户端数 redis客户端如何使用_redis_26

   

   

b、查询list长度

asp.net redis 客户端数 redis客户端如何使用_字节码_27

   

   

c、向已存在的list中添加元素

asp.net redis 客户端数 redis客户端如何使用_字符串_28

   

asp.net redis 客户端数 redis客户端如何使用_redis_29

   

1、描述栈(正向命令)后进先出

asp.net redis 客户端数 redis客户端如何使用_字节码_30

这里的lpush/rpush= left/right + push,从左边压入每一个元素,同样lpop也是从左边弹出。

所以 a b c d e f 按照顺序压入,f最先弹出来。

   

asp.net redis 客户端数 redis客户端如何使用_字节码_31

   

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_32

   

asp.net redis 客户端数 redis客户端如何使用_字节码_33

   

2、描述队列(反像命令)先进先出

描述队列只需要左放右出/右出左放

asp.net redis 客户端数 redis客户端如何使用_redis_34

   

3、描述数组

asp.net redis 客户端数 redis客户端如何使用_redis_35

   

asp.net redis 客户端数 redis客户端如何使用_字符串_36

   

d、删除list中指定数量的元素

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_37

   

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_38

   

e、根据列表中的元素的索引设置其值

asp.net redis 客户端数 redis客户端如何使用_字符串_39

   

asp.net redis 客户端数 redis客户端如何使用_redis_40

   

f、将列表修剪到指定范围

asp.net redis 客户端数 redis客户端如何使用_字节码_41

   

asp.net redis 客户端数 redis客户端如何使用_字符串_42

   

g、删除列表中的最后一个元素,将其添加到另一个列表中并返回

asp.net redis 客户端数 redis客户端如何使用_字节码_43

   

asp.net redis 客户端数 redis客户端如何使用_redis_44

   

   

4、单播队列(一次只够一个人消化)、阻塞

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_45

   

BL/RPOP阻塞式弹出

bLPOP = block + left + pop

   

---------------------------------------

asp.net redis 客户端数 redis客户端如何使用_字节码_46

   

asp.net redis 客户端数 redis客户端如何使用_字节码_47

***此时redis中没有k1****

asp.net redis 客户端数 redis客户端如何使用_字符串_48

Pc1的情况

asp.net redis 客户端数 redis客户端如何使用_redis_49

   

Pc2的情况

asp.net redis 客户端数 redis客户端如何使用_字节码_50

   

由此可见,先请求先获得。而且弹出一个元素后就立马弹出下一个。

③hashMap(场景:详情页、点赞)

a、HSET/HGET 和 hmset/ hmget

asp.net redis 客户端数 redis客户端如何使用_字节码_51

   

asp.net redis 客户端数 redis客户端如何使用_字节码_52

   

b、HGETALL 、HDEL 、HKEYS 、HLEN 、HSTRLEN

asp.net redis 客户端数 redis客户端如何使用_redis_53

asp.net redis 客户端数 redis客户端如何使用_redis_54

asp.net redis 客户端数 redis客户端如何使用_字符串_55

   

   

asp.net redis 客户端数 redis客户端如何使用_字节码_56

   

   

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_57

   

c、hincrby和hincrbyfloat

   

asp.net redis 客户端数 redis客户端如何使用_redis_58

   

   

   

   

asp.net redis 客户端数 redis客户端如何使用_redis_59

   

d、hscan 、hSETnx

asp.net redis 客户端数 redis客户端如何使用_字节码_60

   

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_61

   

④set(去重、抽奖)

a、基本操作sadd 、scard 、smembers 、sismember、srem

asp.net redis 客户端数 redis客户端如何使用_字符串_62

   

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_63

   

asp.net redis 客户端数 redis客户端如何使用_字符串_64

b、多个集合之间的"关系"集

1、交集 SINTER 和 SINTERSTORE

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_65

   

2、差集 SDIFF 和 SDIFFSTORE

asp.net redis 客户端数 redis客户端如何使用_字符串_66

   

3、并集 UNION 和 UNIONSTORE

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_67

   

asp.net redis 客户端数 redis客户端如何使用_redis_68

   

4、随机数 与 其它

a、SRanDmember 随机弹出n个元素

   

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_69

   

b、spop随机弹出一个元素

asp.net redis 客户端数 redis客户端如何使用_redis_70

   

c、smove移动元素

asp.net redis 客户端数 redis客户端如何使用_字符串_71

   

⑤有序集合sorted set(排名)

是为什么有序集合?

就是可以比set多设置一个"score"参数。而且遍历set会根据score参数排序。

Sorted_set的命令都是以Z开头!!!

a、set内基本操作

   

asp.net redis 客户端数 redis客户端如何使用_redis_72

   

asp.net redis 客户端数 redis客户端如何使用_asp.net redis 客户端数_73

   

   

asp.net redis 客户端数 redis客户端如何使用_字节码_74

   

   

b、各类方式删除元素

   

asp.net redis 客户端数 redis客户端如何使用_字节码_75

   

c、筛选后通过分数排名(场景:电影排名、下载排名)

   

asp.net redis 客户端数 redis客户端如何使用_redis_76

   

   

d、交集和并集,这里需要注意的是 权重和聚合,都会累加

asp.net redis 客户端数 redis客户端如何使用_redis_77