您的位置:首页 > 科技 > IT业 > 品牌网站建设专家_h5动态页面_百度开放平台_如何检测网站是否安全

品牌网站建设专家_h5动态页面_百度开放平台_如何检测网站是否安全

2025/6/27 2:53:15 来源:https://blog.csdn.net/blamep/article/details/148892240  浏览:    关键词:品牌网站建设专家_h5动态页面_百度开放平台_如何检测网站是否安全
品牌网站建设专家_h5动态页面_百度开放平台_如何检测网站是否安全

渐进式遍历

在平常的遍历中,keys一次性会把整个redis中的key都获取到,这个操作十分的危险,可能会一下子得到太多的key,从而阻塞服务器。

所以我们可以通过渐进式遍历,既可以得到key,又不会阻塞服务器

渐进式遍历其实是一组的命令

 

redis中Java的使用

jedis是一个 Java语言编写的 Redis 客户端库,用于让 Java 程序通过代码连接并操作 Redis 数据库

jedis在redis中的一些基本命令的使用

jedis中的普通命令

package org.blame;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.params.SetParams;import java.util.Set;public class JedisDemoGeneral {public static void main(String[] args) {JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");
//        try的作用是用完会自动的关闭()中的资源,不需要你手动进行关闭try(Jedis jedis=jedisPool.getResource()){
//在Jedis中的各种方法中,都对应着redis中的各种命令
//            String pong=jedis.ping();
//            System.out.println(pong);
//            test1(jedis);
//            test2(jedis);
//            test3(jedis);
//            test4(jedis);test5(jedis);}}public static void test5(Jedis jedis){jedis.flushAll();jedis.set("k1","11");String k = jedis.type("k1");System.out.println(k);jedis.lpush("k2","12","22");k=jedis.type("k2");System.out.println(k);jedis.hset("k5","hm","12");k=jedis.type("k5");System.out.println(k);jedis.sadd("k3","2");k=jedis.type("k3");System.out.println(k);jedis.zadd("k4",12,"ixaohei");k=jedis.type("k4");System.out.println(k);}public static void test4(Jedis jedis){jedis.flushAll();jedis.set("k","123");try {Thread.sleep(4000);} catch (InterruptedException e) {throw new RuntimeException(e);}long k = jedis.ttl("k");System.out.println(k);}public static void test3(Jedis jedis){jedis.flushAll();jedis.set("a","123");jedis.set("b","555");Set<String> keys = jedis.keys("*");System.out.println(keys);}public static void test2(Jedis jedis){System.out.println(" del和 exist");jedis.set("key","123");jedis.set("key2","1234");boolean key = jedis.exists("key");System.out.println(key);//        del中支持删除多个keylong key2 = jedis.del("key2");System.out.println(key2);boolean key3 = jedis.exists("key2");System.out.println(key3);}public static void test1(Jedis jedis){jedis.set("a","123");jedis.set("b","555");SetParams params=new SetParams();params.ex(10);params.xx();jedis.set("a","888",params);String ret1=jedis.get("a");String ret2=jedis.get("b");System.out.println(ret1);System.out.println(ret2);}}

Jedis中的String类型的命令 

package org.blame;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;import java.util.List;public class JedisDemoString {public static void main(String[] args) {JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");try(Jedis jedis=jedisPool.getResource()){
//            test1(jedis);
//            test2(jedis);test3(jedis);}}public static void test3(Jedis jedis){jedis.flushAll();jedis.set("k","213");long k = jedis.incr("k");String string = jedis.get("k");System.out.println(k);System.out.println(string);k = jedis.decr("k");String string1=jedis.get("k");System.out.println(k);System.out.println(string1);}public static void test2(Jedis jedis){jedis.flushAll();jedis.set("k","fdsfgdfs");jedis.append("k","1111");String s = jedis.get("k");System.out.println(s);}public static void test1(Jedis jedis){jedis.flushAll();String k = jedis.mset("s", "1", "s2", "2", "s3", "3");System.out.println(k);jedis.set("k","dsfdssdfds");String k1 = jedis.getrange("k", 2, 5);System.out.println(k1);jedis.setrange("k", 2, "ppp");String s = jedis.get("k");System.out.println(s);}}

Jedis中的List类型的命令 

package org.blame;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;import java.util.List;public class JedisDemoList {public static void main(String[] args) {JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");try(Jedis jedis=jedisPool.getResource()){
//            test1(jedis);
//            test2(jedis);
//            test3(jedis);
//            test4(jedis);
//            test5(jedis);test6(jedis);}}public static void test6(Jedis jedis){jedis.flushAll();jedis.lpush("k","111","222","333");long k = jedis.llen("k");System.out.println(k);}public static void test5(Jedis jedis){jedis.flushAll();
//        jedis.lpush("key","1");List<String> key = jedis.blpop(100, "key");System.out.println(key);}public static void test4(Jedis jedis){jedis.flushAll();jedis.lpush("k","111","222","333");
//        尾删String k = jedis.rpop("k");System.out.println(k);k = jedis.rpop("k");System.out.println(k);k = jedis.rpop("k");System.out.println(k);k = jedis.rpop("k");System.out.println(k);System.out.println(jedis.get("k"));}public static void test3(Jedis jedis){jedis.flushAll();jedis.lpush("k","111","222","333");
//        头删String k = jedis.lpop("k");System.out.println(k);k = jedis.lpop("k");System.out.println(k);k = jedis.lpop("k");System.out.println(k);k = jedis.lpop("k");System.out.println(k);System.out.println(jedis.get("k"));}public static void test2(Jedis jedis){jedis.flushAll();
//        尾插long k = jedis.rpush("k", "12", "21", "21", "44");System.out.println(k);List<String> k1 = jedis.lrange("k", 0, -1);System.out.println(k1);}public static void test1(Jedis jedis){jedis.flushAll();
//        头插long k = jedis.lpush("k", "12", "21", "21", "44");System.out.println(k);List<String> k1 = jedis.lrange("k", 0, -1);System.out.println(k1);}
}

Jedis中的Hash类型的命令 

package org.blame;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;public class JedisDemoHash {public static void main(String[] args) {JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");try(Jedis jedis=jedisPool.getResource()){
//            test1(jedis);
//            test2(jedis);
//            test3(jedis);
//            test4(jedis);test5(jedis);}}public static void test5(Jedis jedis){jedis.flushAll();jedis.hset("k","f1","111");jedis.hset("k","f2","111");jedis.hset("k","f3","111");jedis.hset("k","f4","111");List<String> hmget = jedis.hmget("k", "f1", "f2", "f3");System.out.println(hmget);}public static void test4(Jedis jedis){jedis.flushAll();jedis.hset("k","f1","111");jedis.hset("k","f2","111");jedis.hset("k","f3","111");jedis.hset("k","f4","111");List<String> k1 = jedis.hvals("k");Set<String> k = jedis.hkeys("k");System.out.println(k1);System.out.println(k);}public static void test3(Jedis jedis){jedis.flushAll();jedis.hset("k","f1","111");jedis.hset("k","f2","111");jedis.hset("k","f3","111");jedis.hset("k","f4","111");long hdel = jedis.hdel("k", "f1", "f2", "f4");System.out.println(hdel);boolean hexists = jedis.hexists("k", "f1");System.out.println(hexists);}public static void test2(Jedis jedis){jedis.flushAll();jedis.hset("k","f1","111");boolean hexists = jedis.hexists("k", "f1");System.out.println(hexists);boolean hexists1 = jedis.hexists("k", "f2");System.out.println(hexists1);}public static void test1(Jedis jedis){jedis.flushAll();jedis.hset("k","f1","111");Map<String,String> hashMap=new HashMap<>();hashMap.put("f2","12");hashMap.put("f3","13");hashMap.put("f4","14");hashMap.put("f5","15");jedis.hset("k",hashMap);String hget = jedis.hget("k", "f1");System.out.println(hget);hget = jedis.hget("k", "f2");System.out.println(hget);hget = jedis.hget("k", "f3");System.out.println(hget);hget = jedis.hget("k", "f4");System.out.println(hget);}
}

Jedis中的Set类型的命令 

package org.blame;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;import java.util.Set;public class JedisDemoSet {public static void main(String[] args) {JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");try(Jedis jedis=jedisPool.getResource()){
//            test1(jedis);
//            test2(jedis);
//            test3(jedis);test4(jedis);}}public static void test4(Jedis jedis){jedis.flushAll();jedis.sadd("k","111","222","333");jedis.sadd("k2","333","222","888");Set<String> sinter = jedis.sinter("k", "k2");System.out.println(sinter);long sinterstore = jedis.sinterstore("kk", "k", "k2");System.out.println(sinterstore);System.out.println(jedis.smembers("kk"));}public static void test3(Jedis jedis){}public static void test2(Jedis jedis){jedis.flushAll();jedis.sadd("k","111","222","333");String k = jedis.spop("k");System.out.println(k);}public static void test1(Jedis jedis){jedis.flushAll();jedis.sadd("k","111","222","333");Set<String> k = jedis.smembers("k");System.out.println(k);boolean k1 = jedis.sismember("k", "111");System.out.println(k1);long k11 = jedis.scard("k");System.out.println(k11);}
}

Jedis中的ZSet类型的命令 

package org.blame;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.resps.Tuple;import java.util.List;public class JedisDemoZSet {public static void main(String[] args) {JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");try(Jedis jedis=jedisPool.getResource()){
//            test1(jedis);
//            test2(jedis);
//            test3(jedis);
//            test4(jedis);test5(jedis);}}public static void test5(Jedis jedis) {jedis.flushAll();jedis.zadd("k", 12, "zhangsan");jedis.zadd("k", 13, "lisi");jedis.zadd("k", 14, "xiaohei");Long zrank = jedis.zrank("k", "xiaohei");System.out.println(zrank);}public static void test4(Jedis jedis){jedis.flushAll();jedis.zadd("k",12,"zhangsan");jedis.zadd("k",13,"lisi");jedis.zadd("k",14,"xiaohei");Double zscore = jedis.zscore("k", "zhangsan");System.out.println(zscore);}public static void test3(Jedis jedis){jedis.flushAll();jedis.zadd("k",12,"zhangsan");jedis.zadd("k",13,"lisi");jedis.zadd("k",14,"xiaohei");long zrem = jedis.zrem("k", "zhangsan", "lisi");System.out.println(zrem);}public static void test2(Jedis jedis){jedis.flushAll();jedis.zadd("k",12,"zhangsan");jedis.zadd("k",13,"lisi");jedis.zadd("k",14,"xiaohei");long k = jedis.zcard("k");System.out.println(k);}public static void test1(Jedis jedis){jedis.flushAll();jedis.zadd("k",12,"zhangsan");jedis.zadd("k",13,"lisi");jedis.zadd("k",14,"xiaohei");List<String> k = jedis.zrange("k", 0, -1);System.out.println(k);List<Tuple> k1 = jedis.zrangeWithScores("k", 0, -1);System.out.println(k1);double k2 = jedis.zrangeWithScores("k", 0, -1).get(0).getScore();String k3 = jedis.zrangeWithScores("k", 0, -1).get(0).getElement();System.out.println(k2);System.out.println(k3);}
}

redis中Java集成到Spring Boot

在Spring中为什么不用Jedis,而是用RedisTemplate 

RedisTemplate 是 Spring Data Redis 提供的抽象封装,它比 Jedis 更适合在 Spring 框架中使用

RedisTemplate的优势对比 

如何在spring中使用redis 

引入redis的依赖

RedisTemplate使用

RedisTemplate是把各种类型的方法进行分类了 

String类型的执行

@RestController
public class MyController {@Autowiredprivate StringRedisTemplate redisTemplate;@ResponseBody@RequestMapping("/testString")private String testString(){redisTemplate.opsForValue().set("key","11");redisTemplate.opsForValue().set("key2","22");redisTemplate.opsForValue().set("key3","33");String s = redisTemplate.opsForValue().get("key");System.out.println(s);return "";}

List类型的执行

@RequestMapping("/testList")@ResponseBodypublic String testList(){redisTemplate.execute((RedisConnection redisConnection)->{redisConnection.serverCommands().flushAll();return null;});redisTemplate.opsForList().leftPush("k","111");redisTemplate.opsForList().leftPush("k","222");redisTemplate.opsForList().leftPush("k","333");String s = redisTemplate.opsForList().rightPop("k");System.out.println(s);return"";}

Hash类型的执行

@RequestMapping("/testHash")@ResponseBodypublic String testHash(){redisTemplate.execute((RedisConnection redisConnection)->{redisConnection.serverCommands().flushAll();return null;});redisTemplate.opsForHash().put("k2","f1","111");redisTemplate.opsForHash().put("k2","f2","222");redisTemplate.opsForHash().put("k2","f3","333");Object o = redisTemplate.opsForHash().get("k2", "f1");System.out.println(o);Boolean b = redisTemplate.opsForHash().hasKey("k2", "f1");System.out.println(b);redisTemplate.opsForHash().delete("k2","f3","f1");Long k2 = redisTemplate.opsForHash().size("k2");System.out.println(k2);return null;}

Set类型的执行

@RequestMapping("/testSet")@ResponseBodypublic String testSet(){redisTemplate.execute((RedisConnection redisConnection)->{redisConnection.serverCommands().flushAll();return null;});redisTemplate.opsForSet().add("k1","111","222","333");Set<String> k1 = redisTemplate.opsForSet().members("k1");System.out.println(k1);Boolean k11 = redisTemplate.opsForSet().isMember("k1", "111");System.out.println(k11);Long k12 = redisTemplate.opsForSet().size("k1");System.out.println(k12);redisTemplate.opsForSet().remove("k1","222");Set<String> k13 = redisTemplate.opsForSet().members("k1");System.out.println(k13);return"";}

ZSet类型的执行 

@RequestMapping("/testZSet")@ResponseBodypublic String testZSet(){redisTemplate.execute((RedisConnection redisConnection)->{redisConnection.serverCommands().flushAll();return null;});redisTemplate.opsForZSet().add("k3","zhangsan",11);redisTemplate.opsForZSet().add("k3","lsii",22);redisTemplate.opsForZSet().add("k3","wangwu",33);Set<String> key = redisTemplate.opsForZSet().range("key", 0, -1);System.out.println(key);Set<ZSetOperations.TypedTuple<String>> k3 = redisTemplate.opsForZSet().rangeWithScores("k3", 0, -1);System.out.println(k3);Double score = redisTemplate.opsForZSet().score("k3", "zhangsan");System.out.println(score);Long remove = redisTemplate.opsForZSet().remove("k3", "wangwu");System.out.println(remove);Long k31 = redisTemplate.opsForZSet().size("k3");System.out.println(k31);Long rank = redisTemplate.opsForZSet().rank("k3", "zhangsan");System.out.println(rank);return"";}

希望能对大家有所帮助!!!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com