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:6379> LPUSH list 1 2 3 4
(integer) 4
# range表示取指定范围的元素(0--1表示获取数据的元素)
node1:6379> LRANGE list 0 -1

# 四、操作SET类型
# 4.1 添加元素
SADD set_test 1
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:6379> EXISTS set_test
# (integer) 1
# node1: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Redis数据库是一个内存数据库,通过key-value键值对的方式进行数据存储。它的优点包括访问速度快、适用于缓存系统和存储大量活跃数据,可以提高网站的响应速度。\[1\]在Java中,有两个比较出名的连接Redis的驱动包,分别是Jedis和Redisson,我们可以使用Jedis来进行程序操作Redis。\[3\]以下是一些基本的Redis操作方法: - 使用`new Jedis(host, port)`创建Jedis对象,其中host是Redis服务器地址,port是Redis服务端口。 - 使用`set(key, value)`方法设置字符串类型的数据。 - 使用`get(key)`方法获取字符串类型的数据。 - 使用`hset(key, field, value)`方法设置哈希类型的数据。 - 使用`hget(key, field)`方法获取哈希类型的数据。 - 使用`lpush(key, values)`方法设置列表类型的数据。 - 使用`lpop(key)`方法从列表左侧弹出元素。 - 使用`rpop(key)`方法从列表右侧弹出元素。 - 使用`del(key)`方法删除指定的key。\[3\] #### 引用[.reference_title] - *1* [redis的基本操作](https://blog.csdn.net/m0_50782114/article/details/128119748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Redis基本使用!](https://blog.csdn.net/weixin_50769390/article/details/127134134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值