待办事项-redis
package com.easyagu.liwei.util;
import redis.clients.jedis.BinaryClient;
import redis.clients.jedis.Jedis;
import java.util.List;
import java.util.Random;
/**
* todo
*/
public class TodoDemo {
/**
* @param args
*/
public static void main(String[] args) {
TodoDemo todoDemo = new TodoDemo();
Long userid = 12l;
for (int i = 0; i < 20; i++) {
todoDemo.addTodoEvent(userid, "第" + (i + 1) + "个待办事项");
}
//查询第一页待办事项
int pageNo = 1;
int pageSize = 10;
List<String> todoEventPage = null;
todoEventPage = todoDemo.findTodoEventByPage(userid, pageNo, pageSize);
for (String todoEvent : todoEventPage) {
System.out.println(todoEvent);
}
//插入一个待办事项
Random random = new Random();
int index = random.nextInt(todoEventPage.size());
String targetTodoEvent = todoEventPage.get(index);
//为啥我插入的待办事项不成功?????
todoDemo.insertTodoEvent(userid, BinaryClient.LIST_POSITION.BEFORE, targetTodoEvent, "插入的待办事项000");
//重新分页查询第一页代办事项
todoEventPage = todoDemo.findTodoEventByPage(userid, pageNo, pageSize);
for (String todoEvent : todoEventPage) {
System.out.println(todoEvent);
}
//修改待办事项
int index2= random.nextInt(todoEventPage.size());
todoDemo.updateTodoEvent(userid,index2,"修改的数据");
//完成一个待办事项
todoDemo.finishTodoEvent(userid,todoEventPage.get(0));
//最后查询一次待办事项
todoEventPage = todoDemo.findTodoEventByPage(userid, pageNo, pageSize);
for (String todoEvent : todoEventPage) {
System.out.println(todoEvent);
}
}
private Jedis jedis = new Jedis("127.0.0.1");
public void addTodoEvent(long userId, String todoEvent) {
jedis.lpush("todo_event::" + userId, todoEvent);
}
;
/**
* 修改待办事项
*
* @param userId
* @param index
* @param updatedTodoEvent
*/
public void updateTodoEvent(long userId, int index, String updatedTodoEvent) {
jedis.lset("todo_event::" + userId, index, updatedTodoEvent);
}
/**
* 完成待办事项
*
* @param userId
* @param todoEvent
*/
public void finishTodoEvent(long userId, String todoEvent) {
jedis.lrem("todo_event::" + userId, 0, todoEvent);
}
;
/**
* 插入待办事项
*
* @param userId
* @param position
* @param todoEvent
* @param targetTodoEvent
*/
public void insertTodoEvent(long userId, BinaryClient.LIST_POSITION position, String todoEvent, String targetTodoEvent) {
jedis.linsert("todo_event::" + userId, position, targetTodoEvent, todoEvent);
}
;
/**
* 分页查询待办事项
*
* @param userId
* @param pageNo
* @param pageSize
* @return
*/
public List<String> findTodoEventByPage(Long userId, Integer pageNo, Integer pageSize) {
int startIndex = (pageNo - 1) * pageSize;
int endIndex = pageNo * pageSize - 1;
//返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
return jedis.lrange("todo_event::" + userId, startIndex, endIndex);
}
}
待办事项-redis的更多相关文章
- Vuex 模块化实现待办事项的状态管理
前言 在vue里,组件之间的作用域是独立的,父组件跟子组件之间的通讯可以通过prop属性来传参,但是在兄弟组件之间通讯就比较麻烦了.比如A组件要告诉一件事给B组件,那么A就要先告诉他们的爸组件,然后爸 ...
- 青否云 - 小程序待办事项vue开源系统
青否云最新开源系统:小程序待办事项 vue-demo 青否云 vue demo 下载地址:https://github.com/qingful/vue-demo 官网 http://cloud.qin ...
- 青否云 - 小程序待办事项 wxapp开源系统
青否云最新开源系统:小程序待办事项 wxapp-demo 青否云 小程序 demo 下载地址:https://github.com/qingful/wxapp-demo 官网 http://cloud ...
- 青否云 - 小程序待办事项 jquery开源系统
青否云最新开源系统:小程序待办事项 jquery-demo 青否云 Jquery demo 下载地址:https://github.com/qingful/jquery-demo 官网 http:// ...
- Go For It ,一个灵活的待办事项列表程序
导读 Go For It,是我们开源工具系列中的第十个工具,它将使你在 2019 年更高效,它在 Todo.txt 系统的基础上构建,以帮助你完成更多工作. 每年年初似乎都有疯狂的冲动想提高工作效率. ...
- todolist待办事项
使用html/css原生js实现待办事项列表: 支持添加待办事项,删除待办事项,切换待办事项的状态(正在进行,已经完成) 支持对正在进行以及已经完成事项编辑(单击内容即可编辑) 源代码:链接:http ...
- Angular待办事项应用2
todo组件 接上一篇,在根目录创建todo组件 命令行输入:ng g c todo 得到 文件结构 修改默认路由为todo: 然后打开浏览器:http://localhost:4200/ ,查看,t ...
- 个人待办事项工具的设计和搭建(IFE前端2015春季 任务3)
这是我几个月之前的项目作品,花了相当的时间去完善.博客人气不高,但拿代码的人不少,所以一直处于保密状态.没有公开代码.但如果对你有帮助,并能提出指导意见的,我将十分感谢. IFE前端2015春季 任务 ...
- jQuery模仿ToDoList实现简单的待办事项列表
功能:在文本框中输入待办事项按下回车后,事项会出现在未完成列表中:点击未完成事项前边的复选框后,该事项会出现在已完成列表中,反之亦然:点击删除按钮会删除该事项:双击事项可以修改事项的内容.待办事项的数 ...
随机推荐
- jenkins的安装、配置使用
1.jenkins的使用 (1).需要先下载安装JDK 配置jdk的环境 变量JAVA_HOME的值是 jdk 的安装位置, 然后下载安装tomcat 安装好了之后,打开tomcat下的bin文件夹, ...
- 【二食堂】Beta - Scrum Meeting 5
Scrum Meeting 5 例会时间:5.18 18:30~18:50 进度情况 组员 当前进度 今日任务 李健 1. 划词功能已经实现,继续开发,完善文本区域交互,调用API issue 1. ...
- ab矩阵(实对称矩阵)
今天在做题时巧遇了很多此类型的矩阵,出于更快解,对此进行学习.(感谢up主线帒杨) 1.认识ab矩阵 形如:主对角线元素都是a,其余元素都是b,我们称之为ab矩阵(默认涉及即为n×n阶) 2.求|A| ...
- 从0到1使用Kubernetes系列(五):Kubernetes Scheduling
前述文章介绍了Kubernetes基本介绍,搭建Kubernetes集群所需要的工具,如何安装,如何搭建应用.本篇介绍怎么使用Kubernetes进行资源调度. Kubernetes作为一个容器编排调 ...
- fatal error: sqlite3.h: No such file or directory
编译带有sqlite3的数据库c语言程序时,出现fatal error: sqlite3.h: No such file or directory,找不到头文件的问题.应该是是系统没有安装函数库. 在 ...
- 矩形覆盖 牛客网 剑指Offer
矩形覆盖 牛客网 剑指Offer 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形.请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? class Solution: ...
- vim vi 高亮第80列 Python PEP8规范 行最大长度设置
命令模式下 :set cc=80 或者 打开 vim的配置 文件 .vimrc vim ~/.vimrc 接着你会看到你的配置文件 在配置文件中加上这样行配置代码 set cc=80 ok 现在退出v ...
- hdu 2201 熊猫阿波的故事(简单概率。。)
题意: 阿波上了飞机,飞机上有座位1,2,....,N.第i个乘客本应坐在第i个座位上. 可是阿波随便找了个座位就坐了下来,接下来大家也都随便找了个座位坐了下来. 问:第i个乘客坐到原座位的概率是多少 ...
- 小入门 Django(做个疫情数据报告)
Django 是 Python web框架,发音 [ˈdʒæŋɡo] ,翻译成中文叫"姜狗". 为什么要学框架?其实我们自己完全可以用 Python 代码从0到1写一个web网站, ...
- Centos7下安装BlockScout
简介 BlockScout是一个Elixir应用程序,允许用户搜索以太坊网络(包括所有叉子和侧链)上的交易,查看账户和余额以及验证智能合约.BlockScout为用户提供了一个全面,易于使用的界面,以 ...