Redis之List类型操作
接口:
package com.net.test.redis.base.dao; import java.util.List; /**
* @author ***
* @Time:2017年8月10日 上午9:23:07
* @version 1.0
* @description
*/
public interface IRedisDaoList { public void lPush(String key, String value); public void lPushAll(String key, List<String> list); public void set(String key, int offset, String value); public void insert(String key, String value1, String value2); public void getValueByIndex(String key, int offset); public void size(String key); public void remove(String key, long count, String value); public void trim(String key, int start, int end); public void lpop(String key); public void lrange(String key, int start, int end); public void rightPopAndLeftPush(String sourceKey, String destinationKey); }
实现类:
package com.net.test.redis.base.dao.imp; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Repository; import com.net.test.redis.base.dao.IRedisDaoList; /**
* @author ***
* @Time:2017年8月10日 上午10:58:42
* @version 1.0
* @description
*/
@Repository
public class RedisDaoListImp implements IRedisDaoList { @Autowired
private RedisTemplate<String, String> redis; /**
* @description 简单的往数组里面添加元素
* @param key
* @param value
*/
@Override
public void lPush(String key, String value)
{
ListOperations<String, String> oper = redis.opsForList();
int backValue = oper.leftPush(key, value).intValue();
System.out.println("返回值 : " + backValue);
} /**
* @description 批量往数组里面添加元素
* @param key
* @param list
*/
public void lPushAll(String key, List<String> list)
{
ListOperations<String, String> oper = redis.opsForList();
int backValue = oper.leftPushAll(key, list).intValue();
System.out.println("返回值 : " + backValue);
} /**
* @description 对指定下标的数组元素进行替换
* @param key
* @param offset
* @param value
*/
@Override
public void set(String key, int offset, String value)
{
ListOperations<String, String> oper = redis.opsForList();
oper.set(key, offset, value);
} /**
* @description 对指定下标的数组进行插入数据
* @param key
* @param value1 原有值
* @param value2 插入的值
*/
@Override
public void insert(String key, String value1, String value2)
{
ListOperations<String, String> oper = redis.opsForList();
int backValue = oper.leftPush(key, value1, value2).intValue();
System.out.println("返回值 : " + backValue);
} /**
* @description 获取指定下标的数组元素
* @param key
* @param offset
*/
@Override
public void getValueByIndex(String key, int offset)
{
ListOperations<String, String> oper = redis.opsForList();
String value = oper.index(key, offset);
System.out.println(offset + "位置下的值为 : " + value);
} /**
* @description 获取数组长度
* @param key
*/
@Override
public void size(String key)
{
ListOperations<String, String> oper = redis.opsForList();
int length = oper.size(key).intValue();
System.out.println(key + " 数组长度为 : " + length);
} /**
* @description 移除数组匹配到的数据元素
* @param key
* @param count 负数:从右往左 整数:从左往右
* @param value 移除的值
*/
@Override
public void remove(String key, long count, String value)
{
ListOperations<String, String> oper = redis.opsForList();
int backValue = oper.remove(key, count, value).intValue();
System.out.println(key + " 数组长度为 : " + backValue);
} /**
* @description 保留区间内的元素,区间外的全部删除
* @param key
* @param start 区间开始
* @param end 区间结束
*/
@Override
public void trim(String key, int start, int end)
{
ListOperations<String, String> oper = redis.opsForList();
oper.trim(key, start, end);
} /**
* @description 从左到右,删除第一个元素
* @param key
*/
public void lpop(String key)
{
ListOperations<String, String> oper = redis.opsForList();
String value = oper.leftPop(key);
System.err.println("移除的元素 : " + value);
} /**
* @description 查询区间范围内的元素
* @param key
* @param start
* @param end
*/
@Override
public void lrange(String key, int start, int end)
{
ListOperations<String, String> oper = redis.opsForList();
List<String> list = oper.range(key, start, end);
for(String str : list)
{
System.out.println("遍历 : " + str);
}
} /**
* @description 两个list之间移元素
* @param sourceKey 源
* @param destinationKey 目的地
*/
@Override
public void rightPopAndLeftPush(String sourceKey, String destinationKey)
{
ListOperations<String, String> oper = redis.opsForList();
String v = oper.rightPopAndLeftPush(sourceKey, destinationKey);
System.out.println("----------" + v);
} }
Redis之List类型操作的更多相关文章
- Redis之Hash类型操作
接口IRedisDaoHash: package com.net.test.redis.base.dao; import com.net.test.redis.base.entity.UserPsg; ...
- python之Redis的字符串类型操作
redis的数据类型: 字符串型 哈希 列表 集合 有序集合 1.String(字符串类型) set 命令: 设置一个键和值,键存在则只覆盖,返回ok > s ...
- Redis之String类型操作
接口IRedisDaoStr: package com.net.test.redis.base.dao; import java.util.List; import java.util.Map; /* ...
- Redis - sort set类型操作
sort set操作:sort set在set基础上增加了一列用于存储顺序序列设置操作:zadd key: zadd key sortnum value 指定key增加元素 ...
- Redis之set类型操作
接口: package com.net.test.redis.base.dao; /** * @author*** * @Time:2017年8月10日 下午2:32:12 * @version 1. ...
- redis 的使用 ( set集合类型操作)
set 集合类型 释义: redis 的 set 是 string 类型的无序集合 set 元素最大可以包含(2的32次方-1)个元素 关于 set 集合类型除了基本的添加删除操 ...
- redis 的使用 ( list列表类型操作)
list 数据类型 列表类型 list 类型是一个双向操作 从链表的头部或者尾部添加删除元素 list 既可以用作栈 也可以用作队列 list 链表的类型应用场合: 获取最新的 10 个用户的信息 s ...
- redis 的使用 (基础, key操作, string类型操作)
使用redis set 类型: 没有重复元素 list 链表类型 有重复累型 sort set 类型 没有重复元素 1.1 存储数据 读取数据 // 数据储存在 内存中 set name laowen ...
- 第二百九十七节,python操作redis缓存-List类型,可以理解为列表
python操作redis缓存-List类型,可以理解为列表,是可以有重复元素的列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: lpush(name ...
随机推荐
- 在myecplise中更新代码发布后没效果
requestmapping指定路径不能访问: 重新发布,重新访问,清除缓存,重新访问,重启浏览器,清除缓存,重新访问,清除Tomcat相关目录,重新发布,重新访问……折腾了很久,可还是没有解决问题. ...
- Unity Download Assistant Error: 'SendRequest Error' while downloading ini file from http://files.unity3d.com/bootstrapper/29055738eb78/unity-5.3.6f1-win.ini
Unity 官网的哥们如此说道 I open the exe on Compatibility Mode , it's solved. You can try. :) 翻译就是 我用兼容模式打开,就能 ...
- js 限制文本框不能输入单引号
<input onkeydown="if(event.keyCode==32||event.keyCode==188||event.keyCode==222){return false ...
- python_2开发简单爬虫
2017年12月03日 16:43:01 独行侠的守望 阅读数:204 标签: python爬虫 更多个人分类: Python编辑版权声明:本文为博主原创文章,转载请注明文章链接. https://b ...
- java-jsch实现sftp文件操作
(曾在天涯)的文章详细讲解了jsch中的函数以及用法 http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html http://www. ...
- 从零开始的全栈工程师——js篇2.17(属性和节点获取)
DOM 一.节点树状图 Document>documentElement>body>tagname 二.常用的节点类型 元素节点(标签) 文本节点(文本节点) 属性节点(标签里的属性 ...
- Struts2笔记2
一.请求参数封装 1.属性驱动: (1).无实体类情况:属性和动作类在一起 a.编写jsp页面,提交数据,例如name和age <form acti ...
- iOS - 协议实现的例子
在实际开发中,协议的应用非常广泛,以下是实际应用的例子. 1.协议的定义: myProtocolDelegate.h // // myProtocolDelegate.h // zlwPlayerAp ...
- 查看mysql表和数据库的大小
转自:http://xiaosu.blog.51cto.com/2914416/687835 1.查看数据库的大小 use 数据库名SELECT sum(DATA_LENGTH)+sum(INDEX_ ...
- redis在Windows下以后台服务一键搭建集群(单机--伪集群)
redis在Windows下以后台服务一键搭建集群(单机--伪集群) 一.概述 此教程介绍如何在windows系统中同一台机器上布置redis伪集群,同时要以后台服务的模式运行.布置以脚本的形式,一键 ...