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

全媒体广告策划营销山东网站seo

全媒体广告策划营销,山东网站seo,重庆公积金门户网站,吉林省城乡建设厅网站文章目录 0.前言1. 发布和订阅消息2. 事务操作3. 管道操作4. jedis 支持哨兵模式5. jedis 支持集群模式5. 参考链接 0.前言 Jedis是Redis的Java客户端,它支持所有的Redis原生命令,使用方便,且可以与Java项目无缝集成。 该库的最新版本支持Re…

文章目录

  • 0.前言
  • 1. 发布和订阅消息
  • 2. 事务操作
  • 3. 管道操作
  • 4. jedis 支持哨兵模式
  • 5. jedis 支持集群模式
  • 5. 参考链接

在这里插入图片描述

0.前言

Jedis是Redis的Java客户端,它支持所有的Redis原生命令,使用方便,且可以与Java项目无缝集成。 该库的最新版本支持Redis 5.0、6.0、6.2、7.0和7.2。
最新依赖

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>5.0.0</version>
</dependency>

有关Jedis版本与Redis版本和JDK的兼容性的信息:

Jedis版本支持的Redis版本JDK兼容性
3.9+5.0和6.2系列8, 11
>= 4.05.0至当前版本8, 11, 17
>= 5.06.0至当前版本8, 11, 17

具体和最准确的信息建议参考官方Jedis文档。

1. 发布和订阅消息

这是一种典型的发布/订阅模式,Jedis提供了subscribe方法和publish方法来实现。在这个例子中,我们首先创建了一个Jedis对象和一个消息监听器,然后通过subscribe方法订阅了一个频道,之后在这个频道上通过publish方法发布了一条消息,消息监听器接收到消息后会打印出消息内容和频道名。如果不再需要订阅该频道,可以通过unsubscribe方法来取消订阅。最后,记得关闭Jedis对象来释放资源。

// 创建Jedis对象
Jedis jedis = new Jedis("localhost", 6379);// 创建消息监听器
JedisPubSub jedisPubSub = new JedisPubSub() {@Overridepublic void onMessage(String channel, String message) {System.out.println("Received message: " + message + " from channel: " + channel);}
};// 订阅频道
jedis.subscribe(jedisPubSub, "channel");// 发布消息
jedis.publish("channel", "Hello Redis!");// 取消订阅
jedisPubSub.unsubscribe("channel");// 关闭连接
jedis.close();

2. 事务操作

Jedis也支持Redis的事务操作,可以通过multi方法开启一个事务,然后在事务中进行一系列的操作,最后通过exec方法提交事务,如果需要放弃事务,可以使用discard方法。在这个例子中,我们在一个事务中进行了两次set操作,然后提交了事务。

// 创建Jedis对象
Jedis jedis = new Jedis("localhost", 6379);// 开启事务
Transaction transaction = jedis.multi();// 执行事务操作
transaction.set("key1", "value1");
transaction.set("key2", "value2");// 提交事务
transaction.exec();// 关闭连接
jedis.close();

3. 管道操作

管道是一种可以一次性发送多个命令到服务器的方式,服务器会一次性返回所有命令的结果,这样可以大大提高效率。在这个例子中,我们使用了Jedis的pipelined方法创建了一个管道对象,然后在管道中执行了三次get命令,通过sync方法提交了管道,然后通过Response对象获取了命令的返回结果。

// 创建Jedis对象
Jedis jedis = new Jedis("localhost", 6379);// 创建管道对象
Pipeline pipelined = jedis.pipelined();// 批量执行命令
Response<String> response1 = pipelined.get("key1");
Response<String> response2 = pipelined.get("key2");
Response<String> response3 = pipelined.get("key3");// 提交命令
pipelined.sync();// 获取命令结果
String value1 = response1.get();
String value2 = response2.get();
String value3 = response3.get();// 关闭连接
jedis.close();

4. jedis 支持哨兵模式

在使用Jedis的哨兵模式之前,你需要先配置好Redis的哨兵模式。这需要至少3个Redis实例,一个作为主节点(master),两个作为从节点(slave)。然后在每个Redis实例上运行一个哨兵进程。

Redis Sentinel哨兵配置

  1. 主节点配置文件 redis.conf 示例:

    bind 127.0.0.1
    port 6379
    
  2. 从节点配置文件 redis-slave.conf 示例:

    bind 127.0.0.1
    port 6380
    slaveof 127.0.0.1 6379
    
  3. 哨兵配置文件 sentinel.conf 示例:

    sentinel monitor mymaster 127.0.0.1 6379 2
    sentinel down-after-milliseconds mymaster 60000
    sentinel failover-timeout mymaster 180000
    
    • sentinel monitor mymaster 127.0.0.1 6379 2 表示哨兵监控的主节点名称叫mymaster,地址127.0.0.1,端口6379,2表示至少需要2个哨兵同意才确认主节点挂掉。
    • sentinel down-after-milliseconds mymaster 60000 表示如果60秒内master节点无响应,那么哨兵将master节点标记为主观下线(subjectively down)。
    • sentinel failover-timeout mymaster 180000 表示如果180秒内master节点还是无响应,那么开始进行故障转移。

使用Jedis连接Redis Sentinel

  1. 引入Jedis依赖。在pom.xml中添加:

    <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.7.0</version>
    </dependency>
    
  2. Java代码:

    Set<String> sentinels = new HashSet<String>();
    sentinels.add("127.0.0.1:26379"); //添加哨兵地址
    JedisSentinelPool sentinelPool = new JedisSentinelPool("mymaster", sentinels); //创建JedisSentinelPool,mymaster是在哨兵配置中定义的主节点名称
    Jedis jedis = null;
    try {jedis = sentinelPool.getResource(); //获取Jedis对象jedis.set("key", "value");  //进行Redis操作String value = jedis.get("key");System.out.println(value);
    } finally {if (jedis != null) {jedis.close();  //关闭连接}
    }
    

Jedis会自动处理故障转移,无需我们手动切换。当Redis主节点出现故障,哨兵会自动选举新的主节点,Jedis也会自动连接到新的主节点。

5. jedis 支持集群模式

在使用Jedis的集群模式之前,你需要先配置好Redis的集群模式。这需要至少6个Redis实例,其中3个作为主节点,3个作为从节点。每个主节点都有一个对应的从节点。

Redis Cluster集群配置

  1. 主节点配置文件 redis-7000.conf 示例:

    port 7000
    cluster-enabled yes
    cluster-config-file nodes-7000.conf
    cluster-node-timeout 5000
    appendonly yes
    
  2. 从节点配置文件 redis-7001.conf 示例:

    port 7001
    cluster-enabled yes
    cluster-config-file nodes-7001.conf
    cluster-node-timeout 5000
    appendonly yes
    

通过Redis自带的redis-cli工具创建集群:

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1

使用Jedis连接Redis Cluster

  1. 引入Jedis依赖。在pom.xml中添加:

    <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.7.0</version>
    </dependency>
    
  2. Java代码:
    以下是一个使用Jedis连接Redis Cluster的完整Java代码示例:

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;import java.util.HashSet;
import java.util.Set;public class JedisClusterExample {public static void main(String[] args) {// 创建集群节点集合Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();// 向集合中添加新的节点jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7000));jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7001));jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7002));jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7003));jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7004));jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7005));// 创建JedisCluster对象JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes);try {// 保存数据jedisCluster.set ("myKey", "Hello, JedisCluster!");// 获取数据String value = jedisCluster.get("myKey");System.out.println("Value stored in Redis : " + value);} catch (Exception e) {e.printStackTrace();} finally {if (jedisCluster != null) {try {// 关闭JedisCluster对象jedisCluster.close();} catch (Exception e) {e.printStackTrace();}}}}
}

5. 参考链接

https://github.com/redis/jedis/wiki/Getting-started

http://www.dinnco.com/news/77336.html

相关文章:

  • 中山免费建网站朝阳区搜索优化seosem
  • 优秀手机网站设计网络营销策略包括哪几大策略
  • 南昌响应式网站建设百度推广开户公司
  • 做怎样的网站能赚钱网络运营课程培训班
  • 做网站钱百度手机网页
  • 美女做暖网站如何免费制作网站
  • 国际军事新闻在哪看山东seo推广
  • 网站建设与运营未来发展小程序开发流程详细
  • 织梦57网站的友情链接怎么做如何进行关键词优化工作
  • 旅游系统青岛seo整站优化
  • 招商网站建设推广怎么做推广比较成功
  • 网站开发服务商英文外链seo兼职
  • Wordpress+仿站+工具seo标题关键词怎么写
  • 查询备案号怎么查询seo搜索引擎优化软件
  • 网站脑图用什么做网络运营培训班多少钱
  • 无锡哪家公司做网站sem竞价托管多少钱
  • 网站怎么做收入苏州网站制作推广
  • 做网站用百度地图和天地图aso是什么意思
  • 代做计算机毕业设计网站网络营销软文范例500
  • 华强北做电子网站相关搜索优化软件
  • 响应式网站 哪些培训体系
  • 公司注册资金增加怎么办理关键字排名优化工具
  • 广东网站建设制作价格低属于seo网站优化
  • 自己做的动画买给网站外包网络推广公司怎么选
  • 网站创建公司推广普通话的宣传内容
  • 国内ip地址代理免费正规网络公司关键词排名优化
  • 用nas做网站服务器百家号自媒体平台注册
  • net程序员网站开发工程师推广
  • wordpress 同步微信素材广州seo公司品牌
  • 湖南省建设干部学校 网站在什么网站可以免费