个人知乎 ##基础五-redis

个人知乎

基础五-redis

功能

pv:立即增加浏览数
点赞
排行榜
验证码
缓存
异步队列
判题队列
地理位置功能

基础知识

key-value数据库,缓存数据库内容
安装
配置文件<denpendencies>
RDB:记录结果
AOF:记录执行过程

基本使用

//连接6379端口,9号数据库
Jedis jedis = new Jedis("redis://localhost:6379/9");
jedis.flushDB();
//map,key-value
//加入
jedis.set("hello","world");
//取出
jedis.get("hello");
//对key改名
jedis.rename("hello","newhello");
//设置超时时间15s,验证码功能
jedis.setex("hello2",15,"world");
//做数值运算
jedis.set("pv",100);
jedis.incr("pv");
jedis.incrby("pv",5);
jedis.decrby("pv",2);

list

//-------------------list适用于最新列表,关注列表
//顺序结构,key-value(list)
String listName="list";
jedis.del(listName);
jedis.lpush(listName,"a1");
jedis.rpush(listName,"a2");
jedis.lrange(listName,0,12);
jedis.llen(listName);
jedis.lpop(listName);
jedis.lindex(listName,3);
jedis.linsert(listName,.before/after,"a1","xx");

hashmap

//----------map:不定属性,对象
//key-value(hashmap)
String userKey="userxx";
jedis.hset(userKey,"name","jim");
jedis.hset(userKey,"age","12");
jedis.hget(userKey,"name");
jedis.hdel(userKey,"age");
jedis.hgetAll(userKey);
jedis.hexists(userKey,"email");
jedis.hkeys(userKey);
jedis.hvals(userKey);
//不存在才添加
jedis.hsetnx(userKey,"name","sdfd0");

set

//--------------Set:无序概念,点踩点赞,抽奖,已读,抽奖
//set,key-value(set)
String likeKey1="commentLike1";
String likeKey2="commentLike2";
jedis.sadd(likeKey1,"1");
jedis.sadd(likeKey1,"11");
jedis.sadd(likeKey2,"1");
jedis.sadd(likeKey2,"111");
//所有
jedis.smembers(likeKey1);
//集合运算
jedis.sunion(likeKey1,likeKey2);
jedis.sdiff(likeKey1,likeKey2);
jedis.sinter(likeKey1,likeKey2);
jedis.sismember(likeKey1,"16");
jedis.srem(likeKey1,"1");
jedis.smove(likeKey1,likeKey2,"11");
//统计集合元素
jedis.scard(likeKey1);

优先队列

//-----------排行榜
//优先队列key-value(<score-element>)
String rankKey="rankKey";
jedis.zadd(rankKey,15,"jim");
jedis.zadd(rankKey,100,"Ben");
jedis.zadd(rankKey,90,"Lee");
jedis.zadd(rankKey,75,"Lucy");
jedis.zcard(rankKey);
//统计double在区间内个数
jedis.zcount(rankKey,61,100);
//给出Lucy的值
jedis.zscore(rankKey,"Lucy");
//跟新值,不存在的key以0为默认值
jedis.zincrby(rankKey,2,"Lucy");
//按从低到高排序,取0到100位
jedis.zrange(rankKey,0,100);
//按从高到地排序,取1到3
jedis.zrevrange(rankKey,1,3);
//遍历
for(Tuple tuple:jedis.zrangeByScoreWithScores(
    rankKey,61,100)){
        tuple.getElement();
        tuple.getScore();
    }
jedis.zrank(rankKey,"Lucy");
jedis.zrevrank(rankKey,"Lucy");
//score一样时,按照element字典序排序
jedis.zranklex(rankKey,"ben")

redis数据库连接池

JedisPool pool=new JedisPool();
for(int i=0;i<100;++i){
    Jedis j=pool.getResource();
    //默认8个连接,不close就会耗尽
    j.close();
}

对象序列化

JSONObject.toJSONString(user);
jedis.set("user1",JSONObject.toJSONString(user));
String value =jedis.get("user1");
User user2=JSON.parseObject(value,User.class);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值