当前位置: 首页 > news >正文

免费建社交网站重庆网站建设yunhuit

免费建社交网站,重庆网站建设yunhuit,东莞全网合一网站,手机网站分享在前面的学习中#xff0c;只是学习了各种redis的操作#xff0c;都是在redis命令行客户端操作的#xff0c;手动执行的#xff0c;更多的时候就是使用redis的api#xff08;#xff09;#xff0c;进一步操作redis程序。 在java中实现的redis客户端有很多#xff0c;…在前面的学习中只是学习了各种redis的操作都是在redis命令行客户端操作的手动执行的更多的时候就是使用redis的api进一步操作redis程序。 在java中实现的redis客户端有很多接下来我们将使用jedis在maven仓库下载jedis。 在depency这里引入依赖。并且需要修改外网ip连接到云服务器并且开启6379端口。 不能开放6379端口因为容易被黑客入侵所以我们需要配置ssh端口转发把云服务器的redis端口映射到本地主机。 ssh端口转发的配置 相当于通过ssh的22来传递其他端口的数据比如本身想要访问6379我们就构造一个ssh的数据报就要把访问redis请求放在数据报中通过比较安全的22端口交给云服务器服务器的程序就能解析该数据报然后交给6379端口。 但是这时候我们会在本地创建一个端口比如8888映射6379这个端口类似于在本地设立一个办事处我们访问8888也就是访问Linux的6379访问本地就是访问远程窗口。 话不多说我们进行一个简单的配置就可以把本地端口当成远程用。 打开属性点击添加在redis中进行如下配置最后点击连接。 最后在cmd中输入netstat -ano | findstr 8888查看是否连接好了。 接下来通过我们自己的127.0.0.1:8888就能操作redis了。 通过下列代码连接redis。 JedisPool jedisPoolnew JedisPool(tcp://127.0.0.1:8888); 接着再从池子中获取连接连接用完之后要记得关闭close此处的释放是把redis的连接放回池子中。 try(Jedis jedisjedisPool.getResource()){//接下来的命令就对应到redis的客户端操作了System.out.println(jedis.ping());} 在这里我们之前配置好了redis.conf的配置项。 get和set方法 import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.params.SetParams;public class RedisDemo {public static void test(Jedis jedis){jedis.flushAll();jedis.set(key,111);jedis.set(key1,222);SetParams setParamsnew SetParams();setParams.ex(10);setParams.nx();jedis.set(key3,333,setParams);String key3 jedis.get(key3);System.out.println(key3);}public static void main(String[] args) {//连接redis服务器上面redis连接池。JedisPool jedisPoolnew JedisPool(tcp://127.0.0.1:8888);try(Jedis jedisjedisPool.getResource()){//接下来的命令就对应到redis的客户端操作了/*System.out.println(jedis.ping());*/test(jedis);}} }在这个test方法中通过set和get方法创建和使用key并且我们还可以给key设定setParams可以设置其超时时间等。 exist和del public static void test2(Jedis jedis){jedis.flushAll();jedis.set(key,111);jedis.set(key2,222);boolean result jedis.exists(key);System.out.println(result result);long delnum jedis.del(key2);System.out.println(delnum);}public static void main(String[] args) {//连接redis服务器上面redis连接池。JedisPool jedisPoolnew JedisPool(tcp://127.0.0.1:8888);try(Jedis jedisjedisPool.getResource()){//接下来的命令就对应到redis的客户端操作了/*System.out.println(jedis.ping());*//*test1(jedis);*/test2(jedis);}} 通过test2调用来获取key数据书否存在以及删除元素的操作来删除以及存在的元素返回的结果是删除的个数。 keys方法 public static void test3(Jedis jedis){jedis.set(key,111);jedis.set(key1,111);jedis.set(key2,111);jedis.set(key3,111);SetString keys jedis.keys(*);System.out.println(keys);}public static void main(String[] args) {//连接redis服务器上面redis连接池。JedisPool jedisPoolnew JedisPool(tcp://127.0.0.1:8888);try(Jedis jedisjedisPool.getResource()){//接下来的命令就对应到redis的客户端操作了/*System.out.println(jedis.ping());*//*test1(jedis);*//*test2(jedis);*/test3(jedis);}} 在这里通过接受并且打印set的方式在控制台打印set并且这里的key没有顺序。 expire和ttl public static void test4(Jedis jedis){jedis.flushAll();jedis.set(key,111);jedis.expire(key,10);try {Thread.sleep(3000);} catch (InterruptedException e) {throw new RuntimeException(e);}long time jedis.ttl(key);System.out.println(time);}public static void main(String[] args) {//连接redis服务器上面redis连接池。JedisPool jedisPoolnew JedisPool(tcp://127.0.0.1:8888);try(Jedis jedisjedisPool.getResource()){//接下来的命令就对应到redis的客户端操作了/*System.out.println(jedis.ping());*//*test1(jedis);*//*test2(jedis);*/ // test3(jedis);test4(jedis);}} 通过expire设置过期时间以及通过ttl查看过期时间还剩下多少。 type public static void test5(Jedis jedis){jedis.flushAll();jedis.set(key,111);String type jedis.type(key);System.out.println(type);} 通过如上方法打印type的类型到控制台由于没有过多设置这里默认是String类型。 mset和mget方法 public static void test(Jedis jedis){jedis.flushAll();jedis.mset(key,000,key1,111,key2,222,key3,333);ListString list jedis.mget(key, key1, key2);System.out.println(list);} 如果在mgetde过程中查询了一个不存在的key就会出现null的情况。 setrange和getrange方法 public static void test1(Jedis jedis){jedis.flushAll();jedis.set(key,asdfghjkl);String string jedis.getrange(key, 2, 5);System.out.println(string);jedis.setrange(key,2,asasa);String string1 jedis.get(key);System.out.println(string1);} getrange获取指定区间的元素setrange从指定位置开始修改元素。 append 对key进行字符串拼接。 public static void test2(Jedis jedis){jedis.flushAll();jedis.set(key,111);jedis.append(key,asdfghjkl);String key jedis.get(key);System.out.println(key);} incr和decr public static void test3(Jedis jedis){jedis.flushAll();jedis.set(key,100);long key jedis.incr(key);System.out.println(key);long key1 jedis.decr(key);System.out.println(key1);} 通过incr和decr来对指定的key中的数字加减。 list相关lpush,lrange等操作 public static void test(Jedis jedis){jedis.flushAll();jedis.lpush(key,111,222,333);ListString list jedis.lrange(key, 0, -1);System.out.println(list);} 头插法进行对头部插入。  集合类型sadd和smembers public static void test(Jedis jedis){jedis.flushAll();jedis.sadd(key,111,222,333,444,555);SetString set jedis.smembers(key);System.out.println(set);boolean result jedis.sismember(key, 111);System.out.println(result);} 哈希类型的使用 public static void test1(Jedis jedis){jedis.flushAll();MapString,String fieldnew HashMap();field.put(f1,111);field.put(f2,222);jedis.hset(key,field);String hget jedis.hget(key, f1);System.out.println(hget);} 先构造一个哈希类型的field并且通过jedis来放置field。 Zset有序集合 public static void test(Jedis jedis){jedis.flushAll();jedis.zadd(key,10,lisi);MapString,Double mapnew HashMap();map.put(zhangsan,20.0);map.put(lisi,15.0);jedis.zadd(key,map);ListTuple key jedis.zrangeWithScores(key, 0, -1);System.out.println(key);System.out.println(key.get(0).getScore());System.out.println(key.get(0).getElement());} 在spring中配置redis 首先要在yml文件中配置以下配置。 spring:data:redis:port: 8888host: 127.0.0.1接着在xml文件中导入操作redis的依赖。 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency 在controller中注入 StringRedisTemplate在java中我们是直接使用jedis来操作redis但是在spring中使用StringRedisTemplate是专门处理文本数据的。 AutowiredStringRedisTemplate stringRedisTemplate; 在StringRedisTemplate中做了进一步的封装可以得到专门操作某个数据结构的对象比如获得专门操作哈希的对象。 StringSpring版本 通过ops的方法来操作相应的对象。 Resourceprivate StringRedisTemplate stringRedisTemplate;RequestMapping(/test)public String test(){stringRedisTemplate.getConnectionFactory().getConnection().flushAll();stringRedisTemplate.opsForValue().set(key1,111);stringRedisTemplate.opsForValue().set(key2,222);stringRedisTemplate.opsForValue().set(key3,333);String string stringRedisTemplate.opsForValue().get(key1);System.out.println(string);return ok;} 执行redis原生命令excute redis留了一个后手能让我们随时执行redis原生命令。 stringRedisTemplate.execute((RedisConnection connection)-{connection.flushAll();return null;}); 通过execute方法和lambda表达式来构建connection方法来调用flush方法就能够做到类似于在控制台上面操作程序。 ListSpring版本 public String testList(){stringRedisTemplate.execute((RedisConnection connection)-{connection.flushAll();return null;});stringRedisTemplate.opsForList().leftPush(key,111);String string stringRedisTemplate.opsForList().rightPop(key);System.out.println(string);return ok;} SetSpring版本 public String testSet(){stringRedisTemplate.execute((RedisConnection connection)-{connection.flushAll();return null;});stringRedisTemplate.opsForSet().add(key,111,222,333);SetString key stringRedisTemplate.opsForSet().members(key);System.out.println(key);Boolean isexiststringRedisTemplate.opsForSet().isMember(key,111);System.out.println(isexist);return ok;} Set操作和前面的List和String操作也很相似。这里我们就快速学习一下。 HashSpring版本 public String testHash(){stringRedisTemplate.execute((RedisConnection connection)-{connection.flushAll();return null;});stringRedisTemplate.opsForHash().put(key,f1,111);stringRedisTemplate.opsForHash().put(key,f2,222);stringRedisTemplate.opsForHash().put(key,f3,333);String value (String) stringRedisTemplate.opsForHash().get(key, f1);System.out.println(value);Boolean exist stringRedisTemplate.opsForHash().hasKey(key, f1);Long l stringRedisTemplate.opsForHash().size(key);System.out.println(l);return ok;} public String testZSet(){stringRedisTemplate.execute((RedisConnection connection)-{connection.flushAll();return null;});stringRedisTemplate.opsForZSet().add(key,zhangsan,10);stringRedisTemplate.opsForZSet().add(key,lisi,20);stringRedisTemplate.opsForZSet().add(key,wangwu,30);SetString key stringRedisTemplate.opsForZSet().range(key, 0, -1);System.out.println(key);SetZSetOperations.TypedTupleString key1 stringRedisTemplate.opsForZSet().rangeWithScores(key, 0, -1);System.out.println(key1);return ok;}
http://www.dnsts.com.cn/news/62786.html

相关文章:

  • 玉林市建设工程交易中心网站个人网页生成器
  • 温州网站建设对比网页小游戏怎么下载
  • 榆林市城乡建设规划网站衡阳网站建设怎样收费
  • wp网站源码家装设计师培训学校学费
  • 建设厅职业资格中心网站网站费用
  • wordpress 加载很慢seo排名价格
  • 网站及微站建设合同验收网站建设公司郑州
  • 我想在阿里巴巴网站开店 怎么做网站起域名原则
  • 百度网站认证wordpress火车头5.0
  • 南昌做网站哪家公司好wordpress小工具怎么用
  • 网站建设费无形资产摊销建站之星建出来的网站如何上传
  • 代加工厂找订单的网站国内网站搭建
  • 网站页面用什么软件做技术支持 佛山网站建设
  • 网站功能建设模块做移动网站优化软
  • h5手机网站发展趋势工程建设安全管理
  • 广州建站优化企业建站公司电话
  • 大连手机自适应网站建设公司摘抄一则新闻
  • 北京建商城网站今天上海新闻综合新闻
  • 怎么更改网站域名解析网页设计如何把照片作为背景
  • 移动网站的建设企业服务内容怎么写
  • 最新流行网站开发技术wdcp wordpress搬家
  • 潍坊cms建站系统国外网站推广宣传
  • 自己电脑做网站服务器广域网访问物流案例网站
  • html5网站开发工具有哪些百度自动点击器
  • 外贸网站设计方案手机网站制作平台免费
  • asp网站开门国外网站翻墙怎么做
  • 潍坊哪里有做360网站护栏电子商务专业就业前景
  • 网站开发投入产出分析拍卖网站功能需求文档
  • 贞丰县建设局网站成都注册公司的流程及手续
  • 织梦网站上传班级网站制作模板