Redis的操作

一、基于string类型操作

设置获取Key

SET hello world
GET hello

MSET(Multi)支持批量设置key、MGET支持批量获取key

MSET hello1 world1 hello2 world2
MGET hello1 hello2

设置一个key,并指定过期时间

SETEX hello3 5 world

使用INCR来进行累加操作

SET PV 1
INCR PV

二、基于hash类型操作

记住:大key、小key

设置Hash的指定字段

HSET userinfo userid 1
HSET userinfo username zhangsan

将Hash的字段获取

HGET userinfo userid

获取Hash中所有的key

HKEYS userinfo

获取Hash中所有的key和value

HGETALL userinfo

删除userinfo下的userid

HDEL userinfo userid

三、操作list类型

push往列表的头部插入数据

node1.itcast.cn:6379> LPUSH list 1 2 3 4
(integer) 4

range表示取指定范围的元素(0–1表示获取数据的元素)

node1.itcast.cn:6379> LRANGE list 0 -1

四、操作SET类型

4.1 添加元素

也是有大小key的

SADD set_test 1 #set_test是大key
SADD set_test 1 2 3 4

SMEMBERS key

返回集合中的所有成员

SCARD key

获取集合的成员数

4.2 获取所有的元素

SMEMBERS set_test

4.3 获取元素的个数

SCARD set_test

要使用SET结构来保存网站的UV

SADD uv:2020-01-01 001 002 003
SCARD uv:2020-01-01

五、针对key的操作

5.1 删除一个key,对应的数据结构

DEL list

5.2 判断set_test这个key是否存在

EXISTS set_test

返回1表示存在,返回0表示不存在

node1.itcast.cn:6379> EXISTS set_test

(integer) 1

node1.itcast.cn:6379> EXISTS set_test1

(integer) 0

六、针对ZSET(有序SET)的操作

6.1 向ZSet中添加页面的PV值

ZADD pv 100 page1.html 200 page2.html 300 page3.html

6.2 获取一共有几个页面

ZCARD key

ZCARD pv

6.3 要给page1.html页面增加pv值

ZINCRBY key increment member

ZINCRBY pv 10 page1.html

6.4 创建两个保存PV的ZSET:

ZADD pv_zset1 10 page1.html 20 page2.html
ZADD pv_zset2 5 page1.html 10 page2.html
ZINTERSTORE pv_zset_result 2 pv_zset1 pv_zset2

6.7 获取ZSET中的所有成员

ZRANGE key start stop [WITHSCORES]

ZRANGE pv_zset_result 0 -1 WITHSCORES

6.8 求page1.html在页面PV中的排名(最小)

默认是按照升序统计 0, 1, 2,3 …,从小到大排列

ZRANK key member

ZRANK pv_zset_result page1.html

6.9 求page1.html在页面PV中的排名(最大)

ZREVRANK key member

注意:这个操作效率很高,并不是重新排序,只是把ZSET反转(revert)即可

ZREVRANK pv_zset_result page1.html

注意:

1. 排名是ZRANK是基于从小到大排列的,ZREVRANK是基于从大到小排列

2. 排名是从0开始,0代表第一名

七、Bitmap操作

6.10 uid=0,5,11,15,19

使用Bitmap来保存用户是否访问过网站

SETBIT unique:users:2020-01-01 0 1
SETBIT unique:users:2020-01-01 5 1
SETBIT unique:users:2020-01-01 11 1
SETBIT unique:users:2020-01-01 15 1
SETBIT unique:users:2020-01-01 19 1

#SETBIT unique:users:2020-01-01 1000000 1

6.11 获取指定用户是否访问过网站

GETBIT key offset

GETBIT unique:users:2020-01-01 0

6.12 统计2020-01-01这一天一共有多少用户访问了网站

BITCOUNT key [start end]

BITCOUNT unique:users:2020-01-01 0 -1

6.13 计算2020-01-01与2020-01-02的所有访问网站的用户

BITOP operation destkey key [key, …]

SETBIT unique:users:2020-01-02 0 1
SETBIT unique:users:2020-01-02 6 1
SETBIT unique:users:2020-01-02 12 1

取or操作

BITOP or unique:users:or:2020-01-01_02 unique:users:2020-01-01 unique:users:2020-01-02

取数量

BITCOUNT unique:users:or:2020-01-01_02 0 -1

八、HyperLogLog操作

pfadd key userid, userid…

pfcount key

需求:

求某个网站的UV值

pfadd taobao:uv:2020-01-01 1
pfadd taobao:uv:2020-01-01 2
pfadd taobao:uv:2020-01-01 1

获取UV的值(去重后的)

pfcount taobao:uv:2020-01-01

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值