关键词:
常规操作
public class TestReidsCommon { ? public static void main(String[] args) { // 创建连接 Jedis jedis = new Jedis("192.168.120.129", 6379); // 设置密码 如果没有密码可以不设置 jedis.auth("123456"); // key Set<String> keys = jedis.keys("*"); for (Iterator<String> iterator = keys.iterator(); iterator.hasNext();) { String key = (String) iterator.next(); System.out.println(key); } System.out.println("jedis.exists====>" + jedis.exists("k2")); System.out.println(jedis.ttl("k1")); // String // jedis.append("k1","myreids"); System.out.println(jedis.get("k1")); jedis.set("k4", "k4_redis"); System.out.println("----------------------------------------"); jedis.mset("str1", "v1", "str2", "v2", "str3", "v3"); System.out.println(jedis.mget("str1", "str2", "str3")); // list System.out.println("----------------------------------------"); // jedis.lpush("mylist","v1","v2","v3","v4","v5"); List<String> list = jedis.lrange("mylist", 0, -1); for (String element : list) { System.out.println(element); } // set jedis.sadd("orders", "jd001"); jedis.sadd("orders", "jd002"); jedis.sadd("orders", "jd003"); Set<String> set1 = jedis.smembers("orders"); for (Iterator<String> iterator = set1.iterator(); iterator.hasNext();) { String string = (String) iterator.next(); System.out.println(string); } jedis.srem("orders", "jd002"); System.out.println(jedis.smembers("orders").size()); // hash jedis.hset("hash1", "userName", "lisi"); System.out.println(jedis.hget("hash1", "userName")); Map<String, String> map = new HashMap<String, String>(); map.put("telphone", "15902738715"); map.put("address", "whsxt"); map.put("email", "leijharvin@163.com"); jedis.hmset("hash2", map); List<String> result = jedis.hmget("hash2", "telphone", "email"); for (String element : result) { System.out.println(element); } // zset jedis.zadd("zset01", 60d, "v1"); jedis.zadd("zset01", 70d, "v2"); jedis.zadd("zset01", 80d, "v3"); jedis.zadd("zset01", 90d, "v4"); ? Set<String> s1 = jedis.zrange("zset01", 0, -1); for (Iterator<String> iterator = s1.iterator(); iterator.hasNext();) { String string = (String) iterator.next(); System.out.println(string); } jedis.close(); } } 2.3,事务提交 常规操作 public class TestReidsTranaction { ? public static void main(String[] args) { // 创建连接 Jedis jedis = new Jedis("192.168.120.129", 6379); // 设置密码 如果没有密码可以不设置 jedis.auth("123456"); //监控key,如果该动了事务就被放弃 /*3 jedis.watch("serialNum"); jedis.set("serialNum","s#####################"); jedis.unwatch();*/ Transaction transaction = jedis.multi();//被当作一个命令进行执行 Response<String> response = transaction.get("serialNum"); transaction.set("serialNum","s002"); response = transaction.get("serialNum"); transaction.lpush("list3","a"); transaction.lpush("list3","b"); transaction.lpush("list3","c"); transaction.exec(); //2 transaction.discard(); System.out.println("serialNum***********"+response.get()); jedis.close(); ? } ? } ? 加锁操作 public class TestReidsTranactionLock { ? public boolean transMethod() { // 创建连接 Jedis jedis = new Jedis("192.168.120.129", 6379); // 设置密码 如果没有密码可以不设置 jedis.auth("123456"); int balance;// 可用余额 int debt;// 欠额 int amtToSubtract = 10;// 实刷额度 ? jedis.watch("balance"); // jedis.set("balance","5");//此句不该出现,讲课方便。模拟其他程序已经修改了该条目 balance = Integer.parseInt(jedis.get("balance")); if (balance < amtToSubtract) { jedis.unwatch(); System.out.println("modify"); jedis.close(); return false; } else { System.out.println("***********transaction"); Transaction transaction = jedis.multi(); transaction.decrBy("balance", amtToSubtract); transaction.incrBy("debt", amtToSubtract); transaction.exec(); balance = Integer.parseInt(jedis.get("balance")); debt = Integer.parseInt(jedis.get("debt")); System.out.println("*******" + balance); System.out.println("*******" + debt); jedis.close(); return true; } } ? /** * 通俗点讲,watch命令就是标记一个键,如果标记了一个键, 在提交事务前如果该键被别人修改过,那事务就会失败,这种情况通常可以在程序中 重新再尝试一次。 * 首先标记了键balance,然后检查余额是否足够,不足就取消标记,并不做扣减; 足够的话,就启动事务进行更新操作, * 如果在此期间键balance被其它人修改, 那在提交事务(执行exec)时就会报错, 程序中通常可以捕获这类错误再重新执行一次,直到成功。 */ public static void main(String[] args) { TestReidsTranactionLock test = new TestReidsTranactionLock(); boolean retValue = test.transMethod(); System.out.println("main retValue-------: " + retValue); } ? } 2.4,主从复制 public class TestReidsMS { ? public static void main(String[] args) throws InterruptedException { // 创建连接 Jedis jedis_M = new Jedis("192.168.120.129", 6379); Jedis jedis_S = new Jedis("192.168.120.129", 6380); ? jedis_S.slaveof("127.0.0.1", 6379); ? jedis_M.set("k6", "v6"); ? Thread.sleep(500); System.out.println(jedis_S.get("k6")); jedis_M.close(); jedis_S.close(); } ? }
redis常用操作
importorg.junit.Before;importorg.junit.Test;importredis.clients.jedis.Jedis;importjava.util.Set;publicclassRedisUtilTest{privateJedisjedis;@Beforepublicvoidsetup(){//连接redis服务器,localhost:6379jedis=new 查看详情
常用操作和管道
一、常用操作 1.1delete(*names)#根据删除redis中的任意数据类型print(r.get(‘name‘))r.delete(‘name‘)print(r.get(‘name‘))#输出b‘bigberg‘None 1.2 exists(name)#检测redis的name是否存在print(r.exists(‘name‘))print(r.exists(‘names 查看详情
redis基本数据类型常用操作(代码片段)
...的,这就意味着集合中不能出现重复的数据。另外,redis中的set是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。一、sadd添加一个、多个元素将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被... 查看详情
redis基本数据类型常用操作(代码片段)
...就是k-dict,dict里又会有属于自己的k-v。一、hset为哈希表中的字段赋值,如果哈希表不存在,创建一个新的哈希表被并进行hset操作。如果字段已 查看详情
springboot和redis常用操作
1 第4-2课:SpringBoot和Redis常用操作Redis是目前使用最广泛的缓存中间件,相比Memcached,Redis支持更多的数据结构和更丰富的数据操作,另外Redis有着丰富的集群方案和使用场景,这一课我们一起学习Redis的常用操作。1.1... 查看详情
redis基本数据类型常用操作(代码片段)
...会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)。一、zadd将一个或... 查看详情
java8中的常用日期操作
java8有很多时间上的新api,在操作时间的时候很好用,这儿算是个备忘录吧,(补充中。。。) 定位某个时间:of方法LocalDateTimedateTime=LocalDateTime.of(2020,2,11,13,15,12);LocalDatedate=LocalDate.of(2020,2,11); 计算两个时间的差值(day,h... 查看详情
redis的常用命令和8大数据类型常用操作大全(代码片段)
文章目录redis基本操作命令Key(键)String(字符串)Hash(哈希)List(列表)Set(集合)sortedset(zset有序集合)HyperLogLog(基数)geospatial(地理位置)bitmap(位图)redis基本操作命令进入redis某台客户端命令redis-cli-hhost-pport-apassword启动redis进程redis-serverxxx.co... 查看详情
redis入门到精通,redission操作redis(代码片段)
...识Redission 前面我们讲了Redis的三大常见客户端中的Jedis和Lettuce,今天就跟大家聊聊这个Redisson。那Redisson是什么呢?Redisson是一个在Redis的基础上实现的Java内存数据网格(In-MemoryDataGrid),它充分利用... 查看详情
redis基本数据类型
...五种不同的数据类型,指的是value的数据类型不同。Redis中的字符串是动态字符串,内部是可以修改的,像Java中的StringBuffer,它采用分配冗余空间的方式来减少内存的频繁分配。在Redis内部结构中,一般实际分配的内存会大于需... 查看详情
深入了解redis操作五大数据类型常用命令
...的停留在了对Redis的操作层面,但是你是否知道string类型中的相关命令,还是有非常多实用的接下来先看一下对string类型进行基本存储和获取的命令。如果我们存储的string中的内容是数字的话,我们也可以对其进行增或减操作,R... 查看详情
16zset相关操作
...自redis-6.2.0 代码来自于 https://redis.io/ 数据结构当zset中的元素数量小于等于 zset_max_ziplist_ent 查看详情
springboot-redis
目录Jedis常用的API通过Jedis再次理解事务SpringBoot集成Redis自定义RedisTemplateJedis我们要使用Java来操作RedisJedis是Redis官方推荐的java连接开发工具!使用Java操作Redis中间件如果你要使用Java操作Redis,那么一定要对jedis十分熟悉创建一个m... 查看详情
七天玩转redis|day5java操作redis(代码片段)
...Java客户端2、环境准备2.1、引入依赖2.2、创建jedis对象3、常用API3.1、操作key相关API3.2、操作String相关API3.3、操作List相关API3.4、操作Set的相关API3.5、操作ZSet相关API3.6、操作Hash相关API1、Redis的Java客户端Redis的Java客户端也有很多:https... 查看详情
redis常用命令:
redis常用命令:一.键值相关命令:key:取出当前数据库中的所有key:keys* //全匹配keys my*//模糊匹配exists:确认一个key是否存在,返回值1存在,0不存在.existsnameexistsagedel:删除一个keydelnamedelageexpire设置一个key的过期时间expireaddr10// ... 查看详情
java中常用日期操作及方法
...以下都可以用。一、Dateformat类的常用格式y年Year1996;96 M年中的月份MonthJuly;Jul;07 w年中的周数Number27 W月份中的周数Number2 D年中的天数Number189 d月份中的天数Number10 F月份中的星期Number2 E星期中的天数TextTuesday;Tue a 查看详情
redis五(其他操作命令)
其他常用操作delete(*names)#根据删除redis中的任意数据类型exists(name)#检测redis的name是否存在keys(pattern=‘*‘)#根据模型获取redis的name#更多:#KEYS*匹配数据库中所有key。#KEYSh?llo匹配hello,hallo和hxllo等。#KEYSh*llo匹配hllo和heeeeello等。#KEY... 查看详情
redis图形化管理工具
一、treeNMSRedis做为现在web应用开发的黄金搭担组合,工作中的项目大量使用了Redis,treeNMS是一款用于JAVA语言开发的Redis管理工具;treeNMS管理工具,直接到http://www.treesoft.cn/dms.html下载二、redisdesktopmanagerRedisDesktopManager是一款好用... 查看详情