一、Windows版redis配置与启动
Redis官方并未提供windows版本,我们可以在github上下载windows版,https://github.com/MSOpenTech/redis/releases
下面是redis.windows.conf
#是否作为守护进程运行 daemonize no #Redis 默认监听端口 port 6479 #客户端闲置多少秒后,断开连接 timeout 300 #日志显示级别 loglevel verbose #指定日志输出的文件名,也可指定到标准输出端口 logfile redis.log #设置数据库的数量,默认最大是16,默认连接的数据库是0,可以通过select N 来连接不同的数据库 databases 32 #Dump持久化策略 #当有一条Keys 数据被改变是,900 秒刷新到disk 一次 #save 900 1 #当有10 条Keys 数据被改变时,300 秒刷新到disk 一次 save 300 100 #当有1w 条keys 数据被改变时,60 秒刷新到disk 一次 save 6000 10000 #当dump .rdb 数据库的时候是否压缩数据对象 rdbcompression yes #dump 持久化数据保存的文件名 dbfilename dump.rdb ########### Replication ##################### #Redis的主从配置,配置slaveof则实例作为从服务器 #slaveof 192.168.0.105 6379 #主服务器连接密码 # masterauth <master-password> ############## 安全性 ########### #设置连接密码 requirepass admin ############### LIMITS ############## #最大客户端连接数 # maxclients 128 #最大内存使用率 # maxmemory <bytes> ########## APPEND ONLY MODE ######### #是否开启日志功能 appendonly no # AOF持久化策略 #appendfsync always #appendfsync everysec #appendfsync no ################ VIRTUAL MEMORY ########### #是否开启VM 功能 #vm-enabled no # vm-enabled yes #vm-swap-file logs/redis.swap #vm-max-memory 0 #vm-page-size 32 #vm-pages 134217728 #vm-max-threads 4
二、Jedis
Jedis是Redis的Java客户端,提供了java对于redis的常用操作。
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.0</version> </dependency>
import redis.clients.jedis.Jedis; import java.util.*; /** * Created by shenhongxi on 2016/1/21. */ public class RedisTest { public static void main(String[] args) { Jedis jedis = new Jedis("127.0.0.1", 6479); jedis.auth("admin"); // password String key = "t"; jedis.set(key, "javared"); System.out.println(jedis.get(key)); jedis.append(key, "&wely"); System.out.println(jedis.get(key)); jedis.del(key); System.out.println(jedis.get(key)); Jedis jedis2 = new Jedis("127.0.0.1", 6379); jedis2.auth("admin"); jedis2.set(key, "wely.com"); System.out.println(jedis2.get(key)); // 批量插入 jedis.mset("name", "hongxi", "age", "23", "qq", "1037256085"); jedis.incr("age"); System.out.println(jedis.get("name") + "_" + jedis.get("age") + "_" + jedis.get("qq")); // map Map<String, String> user = new HashMap<String, String>(); user.put("name", "hongxi"); user.put("age", "23"); user.put("qq", "1037256085"); String hmKey = "user"; jedis.hmset(hmKey, user); List<String> list = jedis.hmget(hmKey, "name", "age", "qq"); System.out.println(list); jedis.hdel(hmKey, "name"); list = jedis.hmget(hmKey, "name", "age", "qq"); System.out.println(list); System.out.println(jedis.hlen(hmKey)); System.out.println(jedis.exists(hmKey)); System.out.println(jedis.hkeys(hmKey)); System.out.println(jedis.hvals(hmKey)); Iterator<String> iter=jedis.hkeys("user").iterator(); while (iter.hasNext()){ String _key = iter.next(); System.out.println(_key + ":" + jedis.hmget("user", _key)); } // list String listKey = "Java Framework"; jedis.del(listKey); System.out.println(jedis.lrange(listKey, 0, -1)); jedis.lpush(listKey, "spring"); jedis.lpush(listKey, "restEasy"); jedis.lpush(listKey, "mybatis"); System.out.println(jedis.lrange(listKey, 0, -1)); jedis.del(listKey); jedis.rpush(listKey, "spring"); jedis.rpush(listKey, "restEasy"); jedis.rpush(listKey, "mybatis"); System.out.println(jedis.lrange(listKey, 0, -1)); // set String setKey = "lang"; Long size = jedis.sadd(setKey, "hongxi", "wely", "norip"); System.out.println(size); jedis.srem(setKey, "norip"); Set<String> set = jedis.smembers(setKey); System.out.println(set); System.out.println(jedis.sismember(setKey, "hongxi")); System.out.println(jedis.srandmember(setKey)); System.out.println(jedis.scard(setKey)); // 排序 jedis.del("a"); jedis.rpush("a", "1"); jedis.lpush("a","6"); jedis.lpush("a", "3"); jedis.lpush("a", "9"); System.out.println(jedis.lrange("a", 0, -1)); // [9, 3, 6, 1] System.out.println(jedis.sort("a")); // [1, 3, 6, 9] System.out.println(jedis.lrange("a",0,-1)); // [9, 3, 6, 1] } }
三、JedisPool
Jedis“连接池”在通常情况下可以有效的提高应用的通信能力,并且这是一种良好的设计模式。Jedis的连接池设计基于apache commons-pool原生库,仅作了简单的封装。连接池基本参数说明这里不加赘述,下面讲述JedisPool编程设计。
public class PoolTestMain { public static void main(String[] args) { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxActive(32); config.setMaxIdle(6); config.setMinIdle(0); config.setMaxWait(15000); config.setMinEvictableIdleTimeMillis(300000); config.setSoftMinEvictableIdleTimeMillis(-1); config.setNumTestsPerEvictionRun(3); config.setTestOnBorrow(false); config.setTestOnReturn(false); config.setTestWhileIdle(false); config.setTimeBetweenEvictionRunsMillis(60000);//一分钟 config.setWhenExhaustedAction((byte)1); JedisPool pool = new JedisPool(config,"127.0.0.1",6379,15000,"0123456",12); Jedis client = pool.getResource();//从pool中获取资源 try{ client.select(0); client.set("k1", "v1"); System.out.println(client.get("k1")); }catch(Exception e){ pool.returnBrokenResource(client); e.printStackTrace(); }finally{ pool.returnResource(client);//向连接池“归还”资源,千万不要忘记。 } } }
spring配置JedisPool:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName"> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxActive" value="32"></property> <property name="maxIdle" value="6"></property> <property name="maxWait" value="15000"></property> <property name="minEvictableIdleTimeMillis" value="300000"></property> <property name="numTestsPerEvictionRun" value="3"></property> <property name="timeBetweenEvictionRunsMillis" value="60000"></property> <property name="whenExhaustedAction" value="1"></property> </bean> <bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy"> <!-- config --> <constructor-arg ref="jedisPoolConfig"></constructor-arg> <!-- host --> <constructor-arg value="127.0.0.1"></constructor-arg> <!-- port --> <constructor-arg value="6379"></constructor-arg> <!-- timeout --> <constructor-arg value="15000"></constructor-arg> <!-- password --> <constructor-arg value="0123456"></constructor-arg> <!-- database index --> <constructor-arg value="12"></constructor-arg> </bean> </beans>
上述代码,事实上存在设计上尚有改进之处,spring-data中对redis的支持,在编程级别更加轻便。
相关推荐
Jedis示例java编程相关代码适合java初学者使用,可熟悉redis缓存相关的操作,以及java编码基于springboot和jedis访问redis服务进行key/value键值对存储和获取附带redis环境安装教程,以及redis入门的介绍教程。...
Redis从入门到精通高清,迅雷播放器组件可顺利播放
- Redis 可以与各种编程语言的客户端库无缝对接,如 Jedis(Java)、StackExchange.Redis(.NET)等。 - 常见框架如 Spring Data Redis 提供了高级封装,简化开发工作。 以上是 Redis 入门的基本知识点,深入学习...
### Redis入门及Jedis应用详解 #### 一、Redis简介 Redis是一款开源、高性能的键-值存储数据库,它能够实现分布式内存存储并提供可选的持久化功能。这款数据库最初由Salvatore Sanfilippo开发,目前由Redis实验室...
本案例将深入探讨如何利用Jedis在Java环境下与Redis进行交互,涉及的技术栈包括MyBatis持久层框架、Jedis工具类、Servlet以及JSP页面。 首先,我们需要理解Jedis的基本使用方法。Jedis的初始化通常是在应用启动时...
《Redis入门指南 第2版》是一本针对初学者编写的详细介绍Redis数据库的书籍。Redis,全称Remote Dictionary Server,是一款高性能的键值存储系统,广泛应用于缓存、消息队列、计数器等多个领域。本指南旨在帮助读者...
Redis从入门到精通2024版 视频教程 下载 ├─第 01 章 开篇 │ 001.Redis 录制计划.mp4 │ 002.Redis 介绍.mp4 │ 003.Redis 安装.mp4 │ ├─第 02 章 基本数据类型 │ 01.在后台启动 Redis.mp4 │ 02....
在本课程中,你将了解Redis是什么、能干什么、如何用,了解NoSQL的使用场景和概念,快速掌握Redis的安装配置、五大数据类型、常用操作命令、Redis持久化、主从复制、事务控制以及用Jedis操作进行Java开发等知识。...
在IT行业中,Java和Redis是两个非常重要的技术组件。Java是一种广泛应用的编程语言,而Redis则是一种...当然,这只是Java调用Redis的入门级Demo,实际开发中还需要考虑更多因素,如错误处理、数据序列化、事务操作等。
Redis 入门详解 Redis 是一种开源、基于内存的数据结构存储系统,可以用作数据库、消息队列、缓存层等。下面是对 Redis 的常用命令、配置文件、持久化、事务、主从复制、Jedis 使用的详细讲解。 Redis 常用命令 ...
Jedis 入门 Jedis 是 Redis 官网首选的 Java 客户端开发包,通过 Jedis,我们可以在 Java 中使用 Redis。Jedis 的使用非常简单,首先需要引入相关的 jar 包,然后创建连接实例,最后使用 Jedis 操作 Redis。 Redis...
本心得笔记是Redis入门学习的心得分享,介绍了Redis的概念,功能,命令操作,持久化操作和使用Jedis操作Redis数据库并且在文末添加了一个案例进行Redis缓存优化,希望这篇Redis学习之路上的心得体会可以分享给大家,...
Redis入门指南(JB51.NET).pdf Redis设计与实现.pdf src: FirestJedisTest.java JedisClusterTest.java RedisClient.java RedisShardPoolTest.java import redis.clients.jedis.Jedis; import redis.clients....
01_redis入门 02_redis 数据类型 03_redis 通用指令 04_jedis 05_linux环境安装redis 06_redis 持久化 07_redis 事务 08_删除策略 09_redis服务器配置 10_高级数据类型 11_主从复制 12_哨兵模式 13_cluster 14_企业...
Redis入门指南手册,详细介绍了Redis的基本概念、数据类型和操作命令;与Spring集成的相关jar包,包括Spring Data Redis的依赖库和客户端库,助你在Spring项目中顺利使用Redis。 总的来说,学习和掌握Redis的使用,...
Jedis 是一个 Java 客户端,用于与 Redis 服务器进行交互,它提供了丰富的 API 来操作 Redis 中的各种数据类型。通过 Jedis,开发者可以轻松地在 Java 应用中存取和处理 Redis 数据。 学习 Redis,你需要掌握以下几...
Jedis 是 Java 开发者常用的 Redis 客户端库,用于在 Java 应用中与 Redis 交互。获取 Jedis jar 包后,可以在 Java 项目中引入,编写代码进行 Redis 的数据存取测试,以实现缓存或数据存储功能。 7. **思考** 在...
Redis从入门到精通2024版 视频教程 下载 ├─第 01 章 开篇 │ 001.Redis 录制计划.mp4 │ 002.Redis 介绍.mp4 │ 003.Redis 安装.mp4 │ ├─第 02 章 基本数据类型 │ 01.在后台启动 Redis.mp4 │ 02....
Redis从入门到精通2024版 视频教程 下载 ├─第 01 章 开篇 │ 001.Redis 录制计划.mp4 │ 002.Redis 介绍.mp4 │ 003.Redis 安装.mp4 │ ├─第 02 章 基本数据类型 │ 01.在后台启动 Redis.mp4 │ 02....
### Redis入门与实践 #### 一、Redis简介与NoSQL概念 Redis是一种广泛使用的开源内存数据结构存储系统,它可以作为数据库、缓存和消息中间件使用。作为一种NoSQL(Not Only SQL)数据库,Redis提供了键值对存储...