jedis

Jedis 连接池的基本使用

佐手、 提交于 2020-05-08 16:52:51
jedis直连 每次操作都会创建一个jedis对象,执行完毕后关闭连接后释放,对应的就是一次Tcp连接。 jedis连接池 预先生成一批jedis连接对象放入连接池中,当需要对redis进行操作时从连接池中借用jedis对象,操作完成后归还。这样jedis对象可以重复使用,避免了频繁创建socket连接,节省了连接开销。 方案对比 连接池简单使用 public class Demo { public static void main(String[] args) { //连接池配置对象,包含了很多默认配置 GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); //初始化Jedis连接池,通常来讲JedisPool是单例的 JedisPool jedisPool = new JedisPool(poolConfig, "119.23.226.29", 6379); Jedis jedis = null; try { //1.从连接池获取jedis对象 jedis = jedisPool.getResource(); //2.执行操作 jedis.set("hello", "jedis"); System.out.println(jedis.get("hello")); } catch

【赵强老师】Redis的消息发布与订阅

泪湿孤枕 提交于 2020-05-08 15:23:12
Redis 作为一个publish/subscribe server,起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向Redis server订阅自己感兴趣的消息类型,当发布者通过publish命令向Redis server发送特定类型的消息时。订阅该消息类型的全部client都会收到此消息。这里消息的传递是多对多的。一个client可以订阅多个channel,也可以向多个channel发送消息。 下图为大家展示了Redis消息机制的体系架构。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息。Redis的这种发布订阅机制与基于主题的发布订阅类似,Channel相当于主题。 下面列出来了Redis发布消息、订阅消息的相关命令。 publish: 发送消息:Redis采用PUBLISH命令发送消息,其返回值为接收到该消息的订阅者的数量。 subscribe: 订阅某个频道:Redis采用SUBSCRIBE命令订阅某个频道,其返回值包括客户端订阅的频道,目前已订阅的频道数量,以及接收到的消息,其中subscribe表示已经成功订阅了某个频道。 psubscribe: 模式匹配:模式匹配功能允许客户端订阅符合某个模式的频道

springboot整合Redis

倖福魔咒の 提交于 2020-05-08 00:48:04
1、新建项目,并添加所需要的jar包: 分析: (1)在springboot中已经继承了Redis,就是说一旦我们启动项目,它是可以根据properties配置文件中的配置信息自动创建Jedis对象的 (2)我们想要的是自己定义配置信息的名称,再根据自己定义的配置信息配置一个有关配置信息的类,最后根据这个类来创建一个我们想要的Jedis对象。 (3)springboot项目在加载的时候,由于springboot无法从配置文件中获取想要的信息,所以不会自动创建属于springboot的Jedis对象,而是根据我们自定义 的配置信息进行创建一个Jedis对象 (4)在使用Jedis对象的时候,我们给我们的Jedis对象加上了@Bean注解,在要使用Jedis的类中使用@Autowired注解,所以spring中的BeanFactory工厂自动创建对象, ,且是单例的;此处直接在@Autowire的注解下注入的是(3)中的对象,也就是根据我们自定义信息创建的对象 springboot-parent spring-boot-web-start mysql驱动包 druid(德鲁伊)连接池 springboot和mybatis的整合包 thymeleaf模板jar包 thymeleaf忽略语法的jar包 springboot和redis的整合包 jedis的包:

javaweb中的点赞功能_redis

怎甘沉沦 提交于 2020-05-07 21:33:44
点赞是高频的操作,如果读取都通过数据库操作,会增大数据库的负担,使用redis作为缓存+定时的方式,可以减少数据库的负担。 优点是 点赞操作的速度加快;减少了数据库的负担 缺点是 redis的持久化不是实时的,缓存中可能丢失用户的点赞数据 在使用redis的时候首先在pom文件中导入jedis的包,其次建立工具类 JedisAdapter 属于service层,其次由于redis存储的时候对key的要求很高,为保证key的唯一性和有效性, 建立redisUtil来管理key //rediskey的工具类 public class RedisUtil{ private statoc final String SPILT=":"; private sttaic final String BIZ_LIKE="LIKE"; private static final String BIZ_DISLIKE="DISLIKE"; private sttaic final String BIZ_EVENT="EVENT"; public staic String getEventQueuKey(){reutrn BIZ_EVENT;} public staic String getLikeKey(int entityId,int ntityType){ return BIZ_LIKE+SPLIT

Mac上的redis安装与jedis入门

不打扰是莪最后的温柔 提交于 2020-05-07 19:48:14
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件 安装与配置 (1) https://redis.io/download 下载redis stable最新版 将压缩包解压到你的文件夹下 (2) 进入到redis文件夹的根目录 # 编译测试(跳过也可以) sudo make test # 编译安装 sudo make install # 安装完成以后启动 redis-server (3) 简单测试 新建一个terminal, 输入 redis-cli # 客户端 存一个简单的kv Jedis使用 Redis命令参考 http://redisdoc.com/list/ltrim.html [推荐, 很全] http://doc.redisfans.com/index.html [很全] (1) 连接到jedis服务 下载依赖的jar包 https://mvnrepository.com/artifact/redis.clients/jedis/2.9.0 或者使用Maven更方便 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> < dependency > < groupId > redis.clients </ groupId > <

Redis 入门到分布式 (三) Redis客户端的使用

折月煮酒 提交于 2020-05-07 19:45:54
个人博客网: https://wushaopei.github.io/ (你想要这里多有) 一、Java客服端:jedis 获取Jedis Jedis基本使用 Jedis连接池使用 1、Jedis是什么? Jedis是官方提供的一个客户端,用于对redis进行操作。遵循redis提供的协议,各种语言都有对应的客户端。 2、Jedis的maven依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> <type>jar</type> <scope>compile</scope> </dependency> 3、Jedis直连: #1.生成一个Jedis对象,这个对象负责和指定Redis节点进行通信 Jedis jedis = new Jedis("127.0.0.1",6379); #2.jedis执行set操作 jedis.set("hello","world"); #3.jedis执行get操作,value="world" String value = jedis.get("hello"); 4、Jedis的构造函数分析: Jedis (String host, int port ,int connectionTimeout,

使用Jedis操作Redis数据库

心已入冬 提交于 2020-05-07 19:39:54
Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用 Jedis和Redisson 。 在企业中用的最多的就是 Jedis ,Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis。 使用Jedis时,需要导入两个jar包: Jedis的基本操作是: Jedis官方文档: http://xetorthio.github.io/jedis/ Jedis的常用API是: Jedis的基本操作是: @Test public void testJedisSingle(){ // 1 设置ip地址和端口 Jedis jedis = new Jedis("localhost", 6379 ); // 2 设置数据 jedis.set("name", "qingmu" ); // 3 获得数据 String name = jedis.get("name" ); System.out.println(name); // 4 释放资源 jedis.close(); } jedis连接池的使用: jedis连接资源的创建与销毁是很消耗程序性能

Jedis 基本使用

时光总嘲笑我的痴心妄想 提交于 2020-05-07 14:41:07
引入 jedis 依赖: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <!-- Dec 15, 2019 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version> </dependency> 简单测试: public class TestRedis { public static void main(String[] args) { Jedis jedis = new Jedis("localhost", 6379); jedis.set("foo", "bar"); String value = jedis.get("foo"); System.out.println(value); } } 常用数据类型测试: public class TestRedisCommands { private Jedis jedis; @Before public void setUp() { jedis = new Jedis("localhost", 6379); } @Test public void testBasicString(){ jedis.set

SpringBoot整合Redis---Jedis版

此生再无相见时 提交于 2020-05-06 23:36:22
目录 介绍 Redis简介 Redis优势 SpringBoot和Redis 开发环境 pom文件引入 创建redis.properties配置文件 创建RedisConfig配置类 创建RedisUtil工具类 使用 效果 介绍 Redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 Redis优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。 丰富的特性 – Redis还支持 publish/subscribe, 通知,

关于redis的几件小事(十)redis cluster模式

这一生的挚爱 提交于 2020-05-06 01:26:38
redis cluster是redis提供的集群模式。 1.redis cluster的架构 ①可以有多个master node,每个master node 都可以挂载多个slave node。 ②读写分离的架构,对应每个master node来说,写就写到master node,读就从master node对应的slave node去读。 ③高可用。每个master node都有多个 slave node,如果master node挂了,redis cluster机制就会自动将某个slave node切换成 master node。 所以redis cluster是 多master + 读写分离 + 高可用 的。只要基于edis cluster去搭建集群,就可以达到搭建 replication复制+主从架构+读写分离+哨兵集群+高可用的 集群架构。 2.redis cluster和replication+sentinal ①输入数据量很少,主要是承载高并发的场景,单机就可以了。 ②replication只有一个master node节点,多个slave node节点,所有节点上面的数据是一样的,所有它可以提高读请求的吞吐量,然后可以搭建一个Sentinal集群去保证高可用,但是他无法去扩容数据的存储量。 ③redis cluster,可以有多个master