redismset写入数据Java_当Java遇到Redis:Jedis实战入门

Redis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应用程序。本文将概要介绍Redis的特性和语法,并以实例代码的形式介绍如何通过Jedis在java语言环境下控制Redis,帮助各位读者快速入门。

NoSQL概述

Redis是NoSQL数据库的代表之一,那什么是NoSQL?

NoSQL = not only SQL,即非关系型数据库。

Why NoSQL?

和传统的关系型数据库相比,NoSQL具有以下的优势:

High Performance:高并发读写;

Huge Storage: 海量数据的高效存储和访问;

High Scalability & High Availability:高可扩展和高可用性

NoSQL的分类:

Key-Value,如Redis,快速查询,但是数据存储缺少结构化;

列存储,如HBase, 扩展性强,查找速度快,但是功能局限;

文档数据库,如MongoDB,数据格式灵活,查询性能不高,缺少统一的查询语法;

图形数据库,如InfoGrid,基于图的算法,但是不容易做分布式的查询;

Redis概述

Redis是一个开源,高性能的键值对数据库, 其优点包括:

异常快 :Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作。

支持丰富的数据类型 :Redis支持开发人员常用的大多数数据类型,例如列表,集合,排序集和散列等等。这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决。

操作具有原子性 : 所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Redis服务器能接收更新的值。

多实用工具 : Redis是一个多实用工具,可用于多种用例,如:

缓存;

任务队列;

网站统计;

数据过期处理;

应用排行榜;

分布式集群的Session分离;

Redis与其他键值存储系统

Redis是键值数据库系统的不同进化路线,它的值可以包含更复杂的数据类型,可在这些数据类型上定义原子操作。

Redis是一个内存数据库,但在磁盘数据库上是持久的,因此它代表了一个不同的权衡,在这种情况下,在不能大于存储器(内存)的数据集的限制下实现非常高的写和读速度。

内存数据库的另一个优点是,它与磁盘上的相同数据结构相比,复杂数据结构在内存中存储表示更容易操作。 因此,Redis可以做很少的内部复杂性。

Redis的安装和使用

Redis的安装是否简单,在Ubuntu上安装Redis,打开终端并键入以下命令即可

sudo apt-get update

sudo apt-get install redis-server

Jedis入门

Jedis是Redis官网首选的Java客户端开发包.

7b3cb7b1eac7

Jedis是Redis官网首选的Java客户端开发包

在Maven中,添加如下依赖即可使用:

redis.clients

jedis

2.9.0

jar

compile

以下是官网是上给出的示例代码,连接本地Redis,进行操作.

@Test

public void ConnectionTest(){

//1. Connecting to Redis server on localhost

Jedis jedis = new Jedis("localhost");

System.out.println("Connection to server sucessfully");

//2. set the data in redis string

jedis.set("username", "Roxin");

//3. Get the stored data and print it

System.out.println("Stored string in redis:: "+ jedis.get("username"));

//4. Close the Redis connection;

jedis.close();

}

其中通过调用set方法来设置键值对,通过get方法获取键值对。

除此之外,Jedis还提供连接池的方式控制连接

@Test

public void ConnectionPoolTest(){

//连接池设定

JedisPoolConfig config = new JedisPoolConfig();

//设定最大连接数

config.setMaxTotal(30);

//设置最大空闲连接数

config.setMaxIdle(10);

//创建连接池

JedisPool jedisPool = new JedisPool(config, "127.0.0.1");

//获得服务资源

Jedis jedis = jedisPool.getResource();

jedis.select(1);

jedis.set("username", "Roxin By Jedis Pool");

System.out.println(jedis.get("username"));

jedis.close();

jedisPool.close();

}

Redis的数据类型

Redis中的数据类型有:

字符串(String)

列表(list)

有序集合(sorted set)

散列(hash)

集合(set)

无论哪种数据类型都需要为其设定键值Key,设置Key的注意点:

不要太长(<1024字节);

不要太短,有可读性;

统一命名规范;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值