Redis快速入门

来源:互联网 发布:博客互踩软件 编辑:程序博客网 时间:2024/06/06 16:32

1 Redis简介

Redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,并且借助许多高层级的接口使其可以胜任,如缓存、队列系统的不同角色。Redis可存储五种类型的数据,分别是字符串(String),散列类型(Hash),列表类型(List),集合类型(Set),无序集合类型(ZSet)。本文仅介绍比较常用的字符串类型。

Redis是一个轻量级的NoSql数据库,即非关系型数据库。

Redis默认支持16个数据库,对外都是以一个从0开始的递增数字命名,可以通过参数databases来修改默认数据库个数。客户端连接Redis服务后会自动选择0号数据库,可以通过SELECT命令更换数据库


2 Redis的下载与安装

2.1 下载

Linux:http://download.redis.io/releases/

Window:https://github.com/MSOpenTech/redis/releases

2.2 安装

Linux:

1 解压: tar -xvf redis-2.8.17.tar.gz 

2 编译:make

3 安装:make install

4 启动:redis-server/ect/redis.conf

5 测试:redis-cli

window:

1 解压

2 注册服务:redis-server --service-install redis.windows.conf --loglevel verbose 

3 启动Redis:redis-server --service-start

4 测试:运行客户端redis-cli

测试:

使用客户端(redis-cli)发送指令:ping,如果返回pong,即连接成功!


3 Redis基本指令

3.1 Set/Get(设置值/获取值)

字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。可以存储JSON化的对象、字节数组等。
一个字符串类型键允许存储的数据最大容量是512MB。

3.2 Incr/Decr(递增数字/递减数字)

当存储的字符串是整数时,可以使用指令当前键值递增或递减,并返回递增后的值。

3.3 Append(追加值)

APPEND的作用是向键值的末尾追加value。如果键不存在则将该键的值设置为value,即相当于 SET key value。返回值是追加后字符串的总长度。

3.4 Strlen(获取字符串长度)

STRLEN命令返回键值的长度,如果键不存在则返回0。

3.5 Expire/PExpire(设置值生存时间)

Redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即:到期后数据销毁

Expire时间:单位是秒、PExpire:单位是毫秒

TTL key 可以查看当前key的剩余存活时间,当key已经销毁了,返回-2,

3.6 Persist(清除生存时间)


4 Redis的客户端(Jedis)

Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。
  在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。
  在企业中用的最多的就是Jedis,下面我们就重点学习下Jedis。

4.1 Jedis简介

Jedis基本上实现了所有的Redis命令,并且还支持连接池、集群等高级的用法,而且使用简单,使得在Java中使用Redis服务将变得非常的简单。

4.2 Jedis的Maven依赖

4.3 Jedis的核心类

4.3.1 JedisPoolConfig

线程池的配置对象,可配置最大连接数等参数,直接new出来。

4.3.2 JedisPool

线程池对象,传入线程池配置对象、ip、port获得。使用getResource获得Jedis对象。

4.3.3 Jedis

Jedis对象,可以执行对Redis的操作。

4.2.4 ShardedJedisPool

集群的线程池对象,传入封装了各个Redis信息的JedisShardInfo对象List<JedisShardInfo>集合。使用getResource获得ShardedJedis对象。

4.2.5 ShardedJedis

ShardedJedis对象,可以执行对Redis的操作。是以集群的方式执行。

4.3 Demo展示

4.3.1 JedisPoolDemo


4.3.2 ShardedJedisPoolDemo


5 Jedis整合Spring(集群式)

5.1 ApplicationContext-redis.xml



5.2 获得并使用ShardedRedisPool





1 0
原创粉丝点击