package com.example.demo.test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.SortingParams;
import java.util.*;
/**
* @author A-LH
* @function jedis常用命令
*/
public class JedisTest {
public static void main(String[] args) {
//jedis操作redis微整理(不全,仅参考)
Jedis jedis = new Jedis("localhost");
System.out.println("连接成功");
System.out.println("服务器正在运行"+jedis.ping());
System.out.println("---------------------------");
//================================对字符串的操作======================================
jedis.set("num", "1");
//设置redis的数据
jedis.set("key", "这是一条数据");
jedis.set("newKey", "这是一条新的数据");
//添加一条新的数据,如果是重复数据,就不添加,也不会覆盖其他数据
jedis.setnx("newKey1", "这是一条重复不会添加的数据");
//添加一条数据并且设置过期时间,单位 秒
jedis.setex("newKey2", 120, "这是一条带有过期时间的数据");
//在键为key的之后面追加值,如果这个key不存在,那么就是和set用法一样,新添加一条数据
jedis.append("key", "+这是在键为key的值后面追加的字符串");//效果为这是一条数据+这是在键为key的值后面追加的字符串
jedis.append("newKeyKey", "这个键在数据库中不存在,他就会在数据库新建一条储存");
//添加一些键值对,key,value的形式
jedis.mset("addKey","addValue","addKey1","addValue1");
//同理 删除多条数据 jedis.mset("addKey","addValue","addKey1","addValue1");
//redis获取键对应的值,并且更新这个值
jedis.getSet("key", "这是获取键为key的值并且替换这个值");
//获取键为key对应的值,从d第i到第j的字符,从0开始,包头包尾
jedis.getrange("key", 0, 3);
//获取多个key的value值,返回值是List<String>类型
jedis.mget("key","newKey","newKey1");
//将key改名为key1,当key和key1相同或者key不存在时,返回一个错误
jedis.rename("key", "key1");
//获取reids的数据,通过getKey的方式
System.out.println("redis储存的数据"+jedis.get("key"));
System.out.println("---------------------------");
//删除指定的key
jedis.del("key");
//=================================================================================
//-------------------------------对整数,浮点数的操作----------------------------------
//将键对应的值加1
jedis.incr("num");
//将键对应的值加n 这里举例加3
jedis.incrBy("num",3);
//将键对应的值减1
jedis.decr("num");
//将键对应的值减n 这里距离减3
jedis.decrBy("num",3);
//---------------------------------------------------------------------
//*************************************List操作*************************************
//list都是从下标为0开始
//将数据储存到列表里 如果key存在就会一次从左边开始往里面添加,输出结果:JingDong,TianMao,TaoBao
jedis.lpush("site-list", "TaoBao");
jedis.lpush("site-list", "TianMao");
jedis.lpush("site-list", "JingDong");
//从右边添加
jedis.rpush("right-list", "PinXiXi");
//获取储存的数据并输出 从0开始包头包尾
List<String> list = jedis.lrange("site-list", 0, 2);
for (int i = 0; i < list.size(); i++) {
System.out.println("列表项为"+list.get(i));
}
System.out.println("---------------------------");
//获取数据并输出
Set<String> keys = jedis.keys("*");//匹配数据库中所有的key 如果是jedis.keys("h?llo");匹配hello,hxllo等
Iterator<String> iterator = keys.iterator();//interator迭代器,使keys这个对象有.next的属性
while (iterator.hasNext()){
String next = iterator.next();
System.out.println(next);//输出所有的key
//返回key所储存的值的类型。
//none(key不存在),string(字符串),list(列表),set(集合),zset(有序集),hash(哈希表)
jedis.type("key1");
}
//删除list中 n个元素val
jedis.lrem("site-list", 1, "TaoBao");
jedis.ltrim("site-list", 2, 4); //删除list区间[i,j] 之外的元素
jedis.lpop("site-list");//key为site-list的list,左弹出一个元素
jedis.rpop("site-list");//key为site-list的list,右弹出一个元素
jedis.lset("site-list",2,"新修改元素");//key为site-list的list,修改下标为2的元素值
jedis.llen("site-list");//获取key为site-list的长度
jedis.lindex("site-list",2);//获取key对应list下标为index的元素
jedis.sort("site-list");//把key对应list里边的元素从小到大排序
//*********************************************************************************
//--------------------------------------Set----------------------------------------
jedis.sadd("keySet","我是第一个set元素","keySet2","我是第二个set元素"); //添加一个set
jedis.smembers("keySet");//获取key对应set的所有元素
jedis.srem("keySet","第一个"); //删除集合key中值为val的元素
jedis.srem("keySet", "我是第一个set元素"); //删除值为v1, v2 , …的元素
jedis.spop("keySet"); //随机弹出栈set里的一个元素
jedis.scard("keySet");//获取set元素个数
jedis.smove("keySet", "keySet2", "我是第一个set元素"); //将元素val从集合key1中移到key2中
jedis.sinter("keySet", "keySet2"); //获取集合key1和集合key2的交集
//---------------------------------------------------------------------------------
//====================================Zsort========================================
jedis.zadd("Zsort",1,"这是一个Zsort");// 添加一个ZSet
jedis.hset("Zsort", "2", "我是插入数据");// 往 ZSet插入一个元素(Score-Val)
jedis.zrange("Zsort", 2 , 4);// 获取ZSet 里下表[i,j] 区间元素Val
jedis.zrangeWithScores("Zsort", 2, 4);// 获取ZSet 里下表[i,j] 区间元素Score - Val
jedis.zrangeByScore("Zsort", 2,4);// 获取ZSet里score[i,j]分数区间的元素(Score-Val)
jedis.zscore("Zsort","我是插入数据");// 获取ZSet里value元素的Score
jedis.zrank("Zsort","这是一个排名");// 获取ZSet里value元素的score的排名
jedis.zrem("Zsort","我是要删除的value");// 删除ZSet里的value元素
jedis.zcard("Zsort");// 获取ZSet的元素个数
jedis.zcount("Zsort", 2 ,5);// 获取ZSet总score在[i,j]区间的元素个数
jedis.zincrby("Zsort",2, "这是一个新元素");// 把ZSet中value元素的score+=n
//=================================================================================
//####################################Hash#########################################
Map<String ,String > map = new HashMap<>();
map.put("map", "这是一个map");
jedis.hmset("Hash",map);// 添加一个Hash
jedis.hset("Hash" , "newMap", "插入一个新map");// 向Hash中插入一个元素(K-V)
jedis.hgetAll("Hash");// 获取Hash的所有(K-V) 元素
jedis.hkeys("Hash");// 获取Hash所有元素的key
jedis.hvals("Hash");// 获取Hash所有元素 的value
jedis.hincrBy("Hash", "m", 2);// 把Hash中对应的k元素的值 val+=i
jedis.hdel("Hash", "这是一个map");// 从Hash中删除一个或多个元素
jedis.hlen("Hash");// 获取Hash中元素的个数
jedis.hexists("Hash","这是一个map");// 判断Hash中是否存在K1对应的元素
jedis.hmget("Hash","这是一个map","插入一个新的map");// 获取Hash中一个或多个元素value
//#################################################################################
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%排序操作%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SortingParams sortingParams = new SortingParams();
jedis.sort("这个是想要排序的key",sortingParams.alpha());//队列按首字母a-z 排序
jedis.sort("这个是想要排序的key", sortingParams.asc() );//队列按数字升序排列
jedis.sort("这个是想要排序的key", sortingParams.desc());//队列按数字降序排列
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//~~~~~~~~~~~~~~~~~~~~~~查看数据类型,设置过期时间~~~~~~~~~~~~~~
//判断key1是否在数据库中存在
Boolean bol = jedis.exists("key1");
System.out.println("数据库中是否存在这个key"+bol);
//设置key过期时间,单位秒
jedis.expire("key1",60);
//获取key剩余的时间,单位秒
Long seconds = jedis.ttl("key1");
System.out.println("key1剩余存活时间"+seconds+"秒");
//移除key存活时间限制
jedis.persist("key1");
//查看key的数据类型
jedis.type("key1");
System.out.println("key的数据类型是"+jedis.type("key1"));
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//清空数据库
jedis.flushDB();
}
}
jedis操作redis(微整理)
最新推荐文章于 2022-07-11 21:56:54 发布