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

怎么做网站邮箱制作网站的步骤是什么

怎么做网站邮箱,制作网站的步骤是什么,网站建设全部流程,长安网站建设制作价格在Redis官网中提供了各种语言的客户端,地址: https://redis.io/docs/latest/develop/clients/ Jedis 以Redis命令做方法名称,学习成本低,简单实用,但是对于Jedis实例是线程不安全的(即创建一个Jedis实例&a…

在Redis官网中提供了各种语言的客户端,地址: https://redis.io/docs/latest/develop/clients/

image-20250520165311469

Jedis

以Redis命令做方法名称,学习成本低,简单实用,但是对于Jedis实例是线程不安全的(即创建一个Jedis实例,多线程并发运行时会有线程安全问题,在多线程使用时,必须为每一个线程创建独立的Jedis连接,就是必须要使用连接池的方式来配合使用。)多线程环境下需要基于连接池来使用。

lettuce

Lettuce是基于Netty实现的,支持同步、异步、和响应式编程方式,并且是线程安全的,支持Redis的哨兵模式、集群模式、和管道模式。与spring结构契合度较高,且数据吞吐量也很不错,因此spring工程也默认兼容lettuce模式

Redisson

Redisson是一个基于Redis实现的分布式、可伸缩的Java数据结构集合。包括了Map,Queue,Lock,Semaphore,AtomicLog等强大功能

Jedis快速入门

Jedis官网地址:redis/jedis: Redis Java client 快速入门:

  • 引入依赖

 <!--    引入Jedis依赖--><!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>5.2.0</version></dependency><dependencies><!--    引入Jedis依赖--><!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>5.2.0</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.11.4</version><scope>test</scope></dependency></dependencies>
  • 建立连接

public class JedisTest {private Jedis jedis;@BeforeEachvoid setUp(){//1.建立连接jedis = new Jedis("127.0.0.1",6379);//2.选择数据库jedis.select(0);}@Testvoid testString(){//存入数据String result = jedis.set("name", "lyc");System.out.println("result = "+result);//获取数据String name = jedis.get("name");System.out.println("name = "+name);}
 
  • 使用Jedis,方法名与Redis命令一致

 @Testvoid testList(){//存入数据jedis.lpush("mylist","1","2","3");for (String s : jedis.lrange("mylist", 0, -1)) {System.out.println("s = "+s);}}@Testvoid testHash(){//存入数据jedis.hset("user:1","name","jack");jedis.hset("user:1","age","21");//获取数据Map<String, String> map = jedis.hgetAll("user:1");for (Map.Entry<String, String> entry : map.entrySet()) {System.out.println(entry.getKey()+" = "+entry.getValue());}}
  • 测试

image-20250520214239522

  • 释放资源

 @AfterEachvoid tearDown(){//关闭连接if (jedis!=null) {jedis.close();}}}

注意事项:在释放资源时并不是单纯的close()方法,而是底层调用returnResource()方法

public void close() {if (this.dataSource != null) {Pool<Jedis> pool = this.dataSource;this.dataSource = null;if (this.isBroken()) {pool.returnBrokenResource(this);} else {pool.returnResource(this);}} else {this.connection.close();}​}

Jedis连接池

Jedis本身是线程不安全的,在多线程的环境下,并发访问Jedis可能会导致线程安全问题.

因此在并发的环境下,Jedis需要给每一个线程创建独立的Jedis对象。

此时最好的方案时使用线程池,并且频繁的创建和销毁Jedis对象(连接)会有性能损耗,因此推荐使用Jedis连接池代替Jedis的直连方式。

Jedis连接池使用说明:

定义JedisConnectionFactory工具类:

首先声明静态变量 Jedispool(Jedis连接池),通过静态代码块将Jedispool配置初始化。

静态代码块中,先新建一个JedisPoolConfig(Jedis连接池配置)实例化对象,配置JedisPoolConfig对象的参数,通过其设置最大连接数,最大空闲连接,最小空闲连接,以及最长等待时间(单位为毫秒)。

最终通过JedisPool的有参构造方法将配置,主机号,端口号,超时时间,以及密码传入JedisPool对象。

最后提供了静态方法getJedis用来拿到Jedis对象(实际是调用JedisPool的getResource()方法)。

只要调用这个工具类的getJedis方法就能拿到Jedis对象,都是从连接池获取,用完之后返回到池中,这样就避免了频繁的创建与销毁Jedis对象。

代码如下:

 
public class JedisConnectionFactory {private static JedisPool jedisPool;static {//配置连接池JedisPoolConfig config = new JedisPoolConfig();// 最大连接数config.setMaxTotal(10);// 最大空闲连接数config.setMaxIdle(5);// 最小空闲连接config.setMinIdle(5);// 获取连接时的最大等待毫秒数config.setMaxWaitMillis(1000);// 在获取连接的时候检查有效性config.setTestOnBorrow(true);//创建连接池对象jedisPool = new JedisPool(config,"192.168.1.100", 6379);}// 获取Jedis实例public static Jedis getJedis() {return jedisPool.getResource();}}

将原来的直接新建Jedis对象改为使用连接池

 @BeforeEachvoid setUp(){//1.建立连接jedis = JedisConnectionFactory.getJedis();//2.选择数据库jedis.select(0);}

再次测试

image-20250520214217640

测试成功。

总结:Jedis中的所有方法都是我们在Redis中学到的命令,这样虽然降低了学习难度,但是导致Jedis显得非常臃肿,因此我们接下来学习的就是由spring整合的SpringDataRedis。

希望对大家有所帮助

http://www.dtcms.com/wzjs/376469.html

相关文章:

  • python 网站开发书籍宝鸡百度seo
  • 在网站加上一个模块怎么做竞价sem培训
  • 广州网站建设信息科技有限公司搜索指数在线查询
  • 定制手机网站建设百度广告位
  • 手机网站制作方案百度网盘首页
  • 做网站实验体会网络销售怎么干
  • 动态网站开发架构网络营销的传播手段
  • 做网站的公司有前途吗市场营销公司排名
  • c 做注册网站怎么做关键词优化排名
  • 临沂罗庄建设局网站nba最新排名榜
  • 1920的网站做字体大小seo搜索引擎优化原理
  • 网站设计做图工具市场调研报告500字
  • 做防水施工 上什么网站找成人培训机构
  • 网站开发是web开发吗seo软件定制
  • aspx网站开发 案例东莞网站制作模板
  • 临沂网站建设咨询做网站的软件叫什么
  • 网络app开发网站建设价格网络营销外包推广定制公司
  • h5开发平台有哪些关键词优化排名软件案例
  • 飞数石家庄网站建设百度关键词搜索查询
  • 怎么用lamp做网站微信app小程序开发
  • 四川建设网官网app优化设计方案
  • 长沙网站建站公司营销型网站建设的步骤流程是什么
  • dw软件个人简历网站怎么做微信营销的特点
  • 资源网站优化排名软件公司竞价培训班
  • php做网站的支付功能sem推广
  • 淮安市住房和城乡建设局网站自己手机怎么免费做网站
  • 可以做录音兼职的网站网络推广有哪些
  • 张家港网站建设培训学校军事新闻
  • wordpress视频站主题推广接单平台
  • 济南好的网站建设公司营销方案策划书