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 ...
随机推荐
- Raymond Mill In Lisp
Raymond Mill is suitable for producing minerals powder, which is widely used in the metallurgy, buil ...
- git merge的参数--squash的用处
本地分支处理问题的过程中一般都是commit在本地分支,当验证完毕后就需要merge到baseline上. 在不懂merge的--squash这个参数前,我一般是这么操作的: 1.在本地分支" ...
- pat1061. Dating (20)
1061. Dating (20) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Sherlock Holmes ...
- 服务器端控件的"客户端"
控件的服务端ID和客户端ID 比如一个ID为TextBox1的服务器端控件,在客户端访问该控件的DOM元素时 错误: var txtbox=document.getElementByID(" ...
- agc015F - Kenus the Ancient Greek(结论题)
题意 题目链接 $Q$组询问,每次给出$[x, y]$,定义$f(x, y)$为计算$(x, y)$的最大公约数需要的步数,设$i \leqslant x, j \leqslant y$,求$max( ...
- Javascript Number
Number 对象 Number对象是原始值的包装对象 创建Number对象的语法: var myNum = new Number(value): var myNum = Number(value): ...
- mysql5.6.31安装及配置
1,下载安装包解压到安装位置.下载地址https://dev.mysql.com/downloads/mysql/5.6.html#downloads 2,修改默认配置文件 在根目录下面有my-def ...
- 关于node中的板块问题
最近自己在看node实战那本书,不过发现有一些书上不对的地方,罗列如下:1.connect服务自己有一些中间件可供使用,但是书上说的有cookie-parser.logger.favicon和body ...
- koa2实现文件上传服务
使用方法 方法一: 使用中间介 koa-body 方法二: 自己写个借口去接收数据流并保存 方法三: 使用 koa-body 接受文件,自己写个接口做文件保存或处理等操作 这里简单记录方法三 app. ...
- 关于调用百度地图api在自己写的网页中实现和解决在https中正常显示
百度地图开发者:http://lbsyun.baidu.com/index.php?title=jspopular 我们打开百度地图开发者网站,注册一个百度账号,然后打开控制台,开始创建应用:(如果你 ...