首页 > 数据库 > 国内数据库 > 涨姿势!Redis这16种妙用,应该见识一下
<dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId></dependency>
String 类型setnx方法,只有不存在时才能添加成功,返回true
public static boolean getLock(String key) {Long flag = jedis.setnx(key, "1");if (flag == 1) {jedis.expire(key, 10);}return flag == 1;}public static void releaseLock(String key) {jedis.del(key);}
字符是以8位二进制存储的
set k1 asetbit k1 6 1setbit k1 7 0get k1/* 6 7 代表的a的二进制位的修改a 对应的ASCII码是97,转换为二进制数据是01100001b 对应的ASCII码是98,转换为二进制数据是01100010因为bit非常节省空间(1 MB=8388608 bit),可以用来做大数据量的统计。
例如: 在线用户统计,留存用户统计
setbit onlineusers 01 setbit onlineusers 11 setbit onlineusers 20
支持按位与、按位或等等操作
BITOPANDdestkeykey[key...] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey 。BITOPORdestkeykey[key...] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey 。BITOPXORdestkeykey[key...] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey 。BITOPNOTdestkeykey ,对给定 key 求逻辑非,并将结果保存到 destkey 。
计算出7天都在线的用户
BITOP "AND" "7_days_both_online_users" "day_1_online_users" "day_2_online_users" ... "day_7_online_users"
// 获取差集sdiff set1 set2// 获取交集(intersection )sinter set1 set2// 获取并集sunion set1 set2
follow 关注 fans 粉丝
sadd 1:follow 2
sadd 2:fans 1
sadd 1:fans 2
sinter 1:follow 2:fans
可能认识的人:
用户1可能认识的人(差集): sdiff 2:follow 1:follow
用户2可能认识的人: sdiff 1:follow 2:follow
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013542/viewspace-3012385/ ,如需转载,请注明出处,否则将追究法律责任。