「redisjava示例」redis在java中的用法
本篇文章给大家谈谈redisjava示例,以及redis在java中的用法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java 开发 2.0: 现实世界中的 Redis :Redis 如何在包含大量读取操作的应用程序中战胜 memcached
- 2、谁有好用的Java使用redis的封装的示例?
- 3、如何在java中使用redis
Java 开发 2.0: 现实世界中的 Redis :Redis 如何在包含大量读取操作的应用程序中战胜 memcached
此外,我还讨论过较为常见的基于服务器的数据存储,比如 MongoDB 和 CouchDB。每个数据存储都有其优势和劣势,特别是当应用于特定领域时。 本期的 Java 开发 2.0 关注的是 Redis,一种轻量级键值对数据存储。多数 NoSQL 实现本质上都是键值对,但是 Redis 支持非常丰富的值集,其中包括字符串、列表、集以及散列。因此,Redis 通常被称为数据结构服务器。Redis 也以异常快速而闻名,这使得它成为某一特定类型使用案例的最优选择。 当我们想要了解一种新事物时,将其同熟知的事物进行比较可能会有所帮助,因此,我们将通过对比其与 memcached 的相似性以开启 Redis 探索之旅。接着我们将介绍 Redis 的主要功能,这些功能可以使其在某些应用场景可以胜过 memcached。最后我将向您展示如何将 Redis 作为一个传统数据存储用于模型对象。Redis 和 memcached Memcached 是一个众所周知的内存对象缓存系统,通过将目标键和值导入内存缓存运行。因此,Memcached 能回避读取磁盘时发生的 I/O 成本问题。在 Web 应用程序和数据库之间粘贴 memcached 时会产生更好的读取性能。因此,对于那些需要快速数据查询的应用程序,Memcached 是一个不错的选择。其中的一个例子为股票查询服务,需要另外访问数据库获取相对静态数据,如股票名称或价格信息。 MemcacheDB 将Redis 与 memcached 相比较并不公平,它与 MemcacheDB 相比要好的多,MemcacheDB 是一个分布式键值对存储系统,专为数据持久化而设计。MemcacheDB 与 Redis 较为相似,其新增优势可以使其轻松地与 memcached 实现的客户端进行通信。 但是memcached 也有其局限性,其中一个事实就是它所有的值均是简单的字符串。Redis 作为 memcached 的替代者,支持更加丰富的功能集。一些基准 (benchmarks) 也表明 Redis 的速度要比 memcached 快很多。Redis 提供的丰富数据类型使其可以在内存中存储更为复杂的数据,这是使用 memcached 无法实现的。同 memcached 不一样,Redis 可以持久化其数据。 Redis 解决了一个重大的缓存问题,而其丰富的功能集又为其找到了其他用途。由于 Redis 能够在磁盘上存储数据以及跨节点复制数据,因而可以作为数据仓库用于传统数据模式(也就是说,您可以使用 Redis,就像使用 RDBMS 一样)。Redis 还经常被用作队列系统。在本用例中,Redis 是备份和工作队列持久化存储(利用 Redis 的列表类型)的基础。GitHub 是以此种方法使用 Redis 的大规模基础架构示例准备好 Redis,立即开始! 要开始使用 Redis,您需要访问它,可以通过本地安装或者托管供应商来实现访问。如果您使用的 MAC,安装过程可能就不那么简单。如果您使用的是 Windows�0�3,您需要先安装 Cygwin。如果您正在寻找一个托管供应商,Redis4You 拥有一个免费计划。不管您以何种方式访问,您都能够根据本文下列示例进行操作,但是我需要指出的是,使用一个托管供应商进行缓存可能并不是很好的缓存解决方案,因为网络延迟可能会抵消任何性能优势。 您需要通过命令与 Redis 进行交互,这就是说,这里没有 SQL 类查询语言。使用 Redis 工作非常类似于使用传统 map 数据结构,即所有的一切都拥有一个键和一个值,每个值都有多种与之关联的数据类型。每个数据类型都有其自己的命令集。例如,如果您计划使用简单数据类型,比如某种缓存模式,您可以使用命令 set 和 get。 您可以通过命令行 shell 与一个 Reids 实例进行交互。还有多个客户端实现,可以以编程方式与 Redis 进行交互。清单 1 展示了一个使用基础命令的简单命令行 shell 交互:清单1. 使用基础的 Redis 命令 redis 127.0.0.1:6379 set page registration OK redis 127.0.0.1:6379 keys * 1) "foo" 2) "page" redis 127.0.0.1:6379 get page "registration" 在这里,我通过 set 命令将键 "page" 与值 "registration" 相关联。接着,我发出 keys 命令(后缀 * 表示我想看到所有可用的实例键。keys 命令显示有一个 page 值和一个 foo,我可以通过 get 命令检索到与一个键关联的值。请记住,使用 get 检索到的值只能是一个字符串。如果一个键的值是一个列表,那么您必须使用一个特定列表的命令来检索列表元素。(注意,有可以查询值类型的命令)。Java 与 Jedis 集成 对于那些想要将 Redis 集成到 Java 应用程序的编程人员,Redis 团队建议使用一个名为 Jedis 的项目,Jedis 是一个轻量级库,可以将本地 Redis 命令映射到 Java 方法。例如 Jedis 可以获取并设置简单值,如清单 2 所示:清单2. Java 代码中的基础 Redis 命令 JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost"); Jedis jedis = pool.getResource(); jedis.set("foo", "bar"); String foobar = jedis.get("foo"); assert foobar.equals("bar"); pool.returnResource(jedis); pool.destroy(); 在清单 2 中,我配置了一个连接池并捕获连接,(与您在典型 JDBC 场景中的操作非常相似)然后我在清单的底部设置了返回操作。在连接池逻辑之间,我设置了值 "bar" 和键 "foo",这是我通过 get 命令检索到的。 与memcached 类似,Redis 允许您将过期(expiration)时间关联到一个值。因此我设置了这样一个值(比如,股票临时交易价格),最终将从 Redis 缓存中清除掉。如果我想在 Jedis 中设置一个过期时间,需要在发出 set 调用之后将其和一个过期时间关联。如清单 3 所示:清单3. Redis 值可以设置为终止 jedis.set("gone", "daddy, gone"); jedis.expire("gone", 10); String there = jedis.get("gone"); assert there.equals("daddy, gone"); Thread.sleep(4500); String notThere = jedis.get("gone"); assert notThere == null; 在清单 3 中,我使用了一个 expire 调用将 "gone" 的值设置为在 10 秒钟内终止。调用 Thread.sleep 之后,"gone" 的 get 调用会返回 null。Redis 中的数据类型 使用Redis 数据类型,比如列表和散列需要专用命令用法。例如,我可以通过为键附加值来创建列表。
谁有好用的Java使用redis的封装的示例?
Java连接redis的使用示例
Redis是开源的key-value存储工具,redis通常用来存储结构化的数据,因为redis的key可以包含String、hash、listset和sorted
list。
Redisclient支持多种语言,包括:c、C++、C#、php、java、python、go等语言,根据自己的开发语言,选择合适的redis
client版本类型即可。我是使用java语言开发的,针对java语言,redis
client也提供了多种客户端支持,按照推荐类型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce。前两种类型是比较推荐的,我们采用了Redisson类型版本作为redisclient的使用。
Redisson版的redis可发工程搭建
1.
新建maven工程
2.
在pom.xml文件的dependencies节点下增加如下内容:
dependency
groupIdorg.redisson/groupId
artifactIdredisson/artifactId
version1.0.2/version
/dependency
dependency
groupIdorg.slf4j/groupId
artifactIdslf4j-log4j12/artifactId
version1.7.7/version
/dependency
3.
保存pom.xml后,等eclispe工程构建完成后即可进行开发了
开发示例
下面是演示连接redis服务器、保存读取concurrentMap对象、保存读取set对象和保存读取Queue对象的示例代码,代码比较简单,这里就不再详细讲解了,代码如下:
[java]
view
plaincopy
package
com.my.test.redis;
import
java.util.Queue;
import
java.util.Set;
import
java.util.concurrent.ConcurrentMap;
import
org.redisson.Config;
import
org.redisson.Redisson;
public
class
RedisExample
{
/**
*
@param
args
*/
public
static
void
main(String[]
args)
{
//
1.初始化
Config
config
=
new
Config();
config.setConnectionPoolSize(10);
config.addAddress("127.0.0.1:6379");
Redisson
redisson
=
Redisson.create(config);
System.out.println("reids连接成功...");
//
2.测试concurrentMap,put方法的时候就会同步到redis中
ConcurrentMapString,
Object
map
=
redisson.getMap("FirstMap");
map.put("wuguowei",
"男");
map.put("zhangsan",
"nan");
map.put("lisi",
"女");
ConcurrentMap
resultMap
=
redisson.getMap("FirstMap");
System.out.println("resultMap=="
+
resultMap.keySet());
//
2.测试Set集合
Set
mySet
=
redisson.getSet("MySet");
mySet.add("wuguowei");
mySet.add("lisi");
Set
resultSet
=
redisson.getSet("MySet");
System.out.println("resultSet==="
+
resultSet.size());
//3.测试Queue队列
Queue
myQueue
=
redisson.getQueue("FirstQueue");
myQueue.add("wuguowei");
myQueue.add("lili");
myQueue.add("zhangsan");
myQueue.peek();
myQueue.poll();
Queue
resultQueue=redisson.getQueue("FirstQueue");
System.out.println("resultQueue==="+resultQueue);
//
关闭连接
redisson.shutdown();
}
}
如何在java中使用redis
public class RedisListJava {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//存储数据到列表中
jedis.lpush("tutorial-list", "Redis");
jedis.lpush("tutorial-list", "Mongodb");
jedis.lpush("tutorial-list", "Mysql");
// 获取存储的数据并输出
ListString list = jedis.lrange("tutorial-list", 0 ,5);
for(int i=0; ilist.size(); i++) {
System.out.println("Stored string in redis:: "+list.get(i));
}
}
}
redisjava示例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于redis在java中的用法、redisjava示例的信息别忘了在本站进行查找喔。