package xbog.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import xbog.model.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Service;
import redis.clients.jedis.*;
import java.io.IOException;
import java.util.List;
import java.util.Set;
/**
* Created by Administrator on 2016/10/16.
*/
@Service//包装成一个服务,并且实现初始化implements InitializingBean属性pool
public class JedisAdapter implements InitializingBean{
private static final Logger logger = LoggerFactory.getLogger(JedisAdapter.class);
private JedisPool pool;
public static void print(int index,Object obj){
System.out.println(String.format("%d,%s",index,obj.toString()));
}
public static void main(String[] args){
Jedis jedis=new Jedis("redis://localhost:6379/1");//默认会连接你的6379端口
jedis.flushDB();//删除这个数据库的数据
//get set操作
jedis.set("name","Hello world");
print(1,jedis.get("name"));
jedis.rename("name","new name");
print(2,jedis.get("new name"));
jedis.setex("hello2",15,"world");
//阅读数; 1从数据库,redis,秒杀活动,等等都是放在内存中去的
jedis.set("pv","100");
jedis.incr("pv");//加1;
jedis.incrBy("pv",5);
print(3,jedis.get("pv"));
jedis.decrBy("pv",3);
print(4,jedis.get("pv"));
print(5,jedis.keys("p*"));//获取所有的keys
//使用list进行存取数据
String listname="list";
jedis.del(listname);
for (int i=0;i<10;i++){
jedis.lpush(listname,"a"+String.valueOf(i));
}
//取出数据,类似于一个栈的情况
print(6,jedis.lrange(listname,3,12));
print(7,jedis.llen(listname));
print(8,jedis.lpop(listname));
print(9,jedis.llen(listname));
print(10,jedis.lindex(listname,0));
print(11,jedis.linsert(listname, BinaryClient.LIST_POSITION.AFTER,"a4","nnnnnn"));
print(12,jedis.linsert(listname, BinaryClient.LIST_POSITION.BEFORE,"a4","mmmmmm"));
print(13,jedis.lrange(listname,0,12));
//HASH
String userKey="userXX";
//随意定义一个表的属性
jedis.hset(userKey,"name","javaers");
jedis.hset(userKey,"age","12");
jedis.hset(userKey,"phone","12891221");
print(14,jedis.hget(userKey,"name"));
print(15,jedis.hgetAll(userKey));
jedis.hdel(userKey,"phone");
print(16,jedis.hgetAll(userKey));
jedis.hset(userKey,"email","80210534@qq.com");
print(17,jedis.hexists(userKey,"email"));
print(18,jedis.hkeys(userKey));
print(19,jedis.hvals(userKey));//其实是一种遍历
jedis.hsetnx(userKey,"school","zju");
jedis.hsetnx(userKey,"name","xioaming");//如果不存在才设置,
print(20,jedis.hgetAll(userKey));
//下面演示集合;
String likekeys1="like1";//点赞
String likekeys2="like2";//点赞
for (int i=0;i<12;i++){
jedis.sadd(likekeys1,String.valueOf(i));
jedis.sadd(likekeys2,String.valueOf(i*i));
}
print(21,jedis.smembers(likekeys1));
print(22,jedis.smembers(likekeys2));
print(23,jedis.sunion(likekeys1,likekeys2));
print(24,jedis.sdiff(likekeys1,likekeys2));//我有,你没有的
print(25,jedis.sinter(likekeys1,likekeys2));
print(26,jedis.sismember(likekeys1,"2"));
jedis.srem(likekeys1,"5");
print(27,jedis.smembers(likekeys1));
jedis.smove(likekeys2,likekeys1,"25");//从likekeys2中25把元素移动到likekeys1
print(28,jedis.smembers(likekeys1));
print(29,jedis.smembers(likekeys2));
print(30,jedis.scard(likekeys1));
//演示优先队列sorts set
String rankKey ="rankKey";
jedis.zadd(rankKey,15,"jim");
jedis.zadd(rankKey,60,"Ben");
jedis.zadd(rankKey,86,"Lee");
jedis.zadd(rankKey,90,"Huang");
jedis.zadd(rankKey,99,"Hans");
print(31,jedis.zcard(rankKey));
print(32,jedis.zcount(rankKey,60,99));
print(33,jedis.zscore(rankKey,"Huang"));//某个key的分数是多少
jedis.zincrby(rankKey,3,"Le");
print(34,jedis.zscore(rankKey,"Lee"));//某个key的分数是多少
print(35,jedis.zscore(rankKey,"Le"));//某个key的分数是多少
print(36,jedis.zrange(rankKey,0,100));
//排行相关的功能;这里默认是以升ming来排序的
print(37,jedis.zrange(rankKey,1,3));//按照人数取
print(38,jedis.zrevrange(rankKey,0,2));
//下面遍历:根据分数来挑选,//按照分数取
for (Tuple tuple:jedis.zrangeByScoreWithScores(rankKey,60,100)){
print(40,tuple.getElement()+":" +String.valueOf(tuple.getScore()));
}
print(41,jedis.zrank(rankKey,"Ben"));//他的排名;
print(41,jedis.zrevrank(rankKey,"Ben"));
//下面根据字母排序
String setKey="zset";//当所有人的分值都是一样的
jedis.zadd(setKey,1,"a");
jedis.zadd(setKey,1,"b");
jedis.zadd(setKey,1,"c");
jedis.zadd(setKey,1,"e");
jedis.zadd(setKey,1,"f");
print(44,jedis.zlexcount(setKey,"-","+"));//从负无穷到正无穷
print(45,jedis.zlexcount(setKey,"(b","[e"));
print(46,jedis.zrange(setKey,0,12));
jedis.zremrangeByLex(setKey,"(c","+");
print(47,jedis.zrange(setKey,0,2));
//连接池
// JedisPool pool = new JedisPool();
// for (int i = 0; i < 100; ++i) {
// Jedis j = pool.getResource();
// print(45, j.get("pv2"));
// j.close();
// }
User user=new User();
user.setName("张三");
user.setPassword("123456");
user.setSalt("hdhdad");
user.setHeadUrl("dsdsd");
user.setId(1);
print(50,JSONObject.toJSONString(user));
jedis.set("user1", JSONObject.toJSONString(user));
String value1=jedis.get("user1");
User user2 = JSON.parseObject(value1,User.class);
System.out.println(user2.getName()+user2.getPassword());
}
//初始化pool,相当有了一个集合中的数据
@Override
public void afterPropertiesSet() throws Exception {
pool=new JedisPool("redis://localhost:6379/10");
}
//增加一个连接池的添加;在这这个连接池中增加一个数据
public long sadd(String key,String value){
Jedis jedis=null;
try{
jedis=pool.getResource();
return jedis.sadd(key,value);
}catch (Exception e){
logger.error("发生异常:"+e.getMessage());
}finally {
if (jedis!=null){
jedis.close();
}
}
return 0;
}
public long sremove(String key,String value){
Jedis jedis=null;
try{
jedis=pool.getResource();
return jedis.srem(key,value);
}catch (Exception e){
logger.error("发生异常:"+e.getMessage());
}finally {
if (jedis!=null){
jedis.close();
}
}
return 0;
}
//求这个连接池集合中的数量
public long scard(String key){
Jedis jedis=null;
try{
jedis=pool.getResource();
return jedis.scard(key);
}catch (Exception e){
logger.error("发生异常:"+e.getMessage());
}finally {
if (jedis!=null){
jedis.close();
}
}
return 0;
}
//判断是不是在里面
public boolean sismember(String key,String value){
Jedis jedis=null;
try{
jedis=p
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备等 操作系统:LInux、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
资源推荐
资源详情
资源评论
收起资源包目录
java web项目 .zip (106个子文件)
mvnw.cmd 5KB
editormd.preview.min.css 44KB
detail.css 2KB
home.css 1KB
result.css 1KB
header.css 808B
.gitignore 234B
detail.html 6KB
home.html 6KB
followers.html 6KB
followees.html 6KB
result.html 6KB
header.html 4KB
login.html 3KB
profile.html 3KB
questionForm.html 2KB
letter.html 1KB
feeds.html 1KB
messageSend.html 1KB
letterDetail.html 1KB
js.html 852B
login_exception.html 88B
footer.html 14B
maven-wrapper.jar 48KB
JedisAdapter.java 12KB
FollowController.java 8KB
MutiThreadTest.java 7KB
MessageController.java 6KB
LoginController.java 6KB
QuestionController.java 5KB
UserService.java 5KB
FollowService.java 4KB
HomeController.java 4KB
ProduceAndConsumerModel.java 4KB
EventConsumer.java 4KB
SearchService.java 3KB
SearchController.java 3KB
IndexOfController.java 3KB
FeedHandler.java 3KB
CommentController.java 3KB
MailSender.java 3KB
Pager.java 2KB
LikeController.java 2KB
PassportInterceptor.java 2KB
WendaUtil.java 2KB
EventModel.java 2KB
FeedController.java 2KB
MessageDao.java 2KB
LikeService.java 2KB
ServiceTest.java 2KB
FollowHandler.java 2KB
RedisKeyUtil.java 2KB
CommentDao.java 1KB
Message.java 1KB
LikeHandler.java 1KB
Comment.java 1KB
Feed.java 1KB
QuestionInterceptor.java 1KB
LoginRequiredInterceptor.java 1KB
QuestionService.java 1KB
CommentService.java 1KB
QuestionDao.java 1KB
WebConfiguration.java 1KB
Question.java 1KB
AdapterTest.java 1KB
AddQuestionHandler.java 1KB
MessageService.java 1KB
LogAspect.java 1018B
User.java 985B
FeedDao.java 981B
LoginExceptionHandler.java 960B
CommentInitTest.java 957B
UserDao.java 941B
LoginTicket.java 915B
LoginTicketDao.java 890B
EventProducer.java 872B
AttributeConstant.java 842B
User.java 757B
FeedService.java 710B
WendaApplicationTests.java 673B
FeedInitTest.java 574B
MessageInitTest.java 510B
LoginInitTest.java 502B
ViewOfObject.java 428B
HostHolder.java 414B
EventHandler.java 377B
EventType.java 361B
CimsApplication.java 294B
TestService.java 252B
EntityType.java 219B
editormd.js 155KB
mvnw 7KB
application.properties 381B
maven-wrapper.properties 110B
init-table.sql 2KB
comment_table.sql 445B
message_table.sql 436B
init_table.sql 342B
feed_table.sql 313B
login_table.sql 296B
共 106 条
- 1
- 2
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2024年五一数学建模ABC题思路+代码+论文资料汇总贴.txt
- jquery-3.1.1.min.js
- 使用 Python 和 Pygame 开发《星露谷物语》 游戏+源码(毕业设计&课程设计&项目开发)
- VOC4-123-1-321-32-1
- 基于python开发的踢足球游戏+源码(毕业设计&课程设计&项目开发)
- 【课程设计全套资料】一个基于JAVA-JSP企业合同管理系统
- bootstrap的css和js文件
- lda代码-checkpoint-checkpoint.ipynb
- 基于java局域网飞鸽传书软件设计与实现(源代码+论文).zip
- 基于python开发的魂斗罗游戏+源码(毕业设计&课程设计&项目开发)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功