JAVA 中应用 Redis

redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

redis 与其他 key-value 缓存产品有以下三个特点:

1) 支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

2) redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list set  zset  hash 等数据结构的存储。

3) redis 支持数据备份,即 master-slave 模式的数据备份。

redis 优点:

1)性能极高               读的速度是 110000 次 /s    写的速度是 81000 次 /s

2) 丰富的数据类型      redis 支持二进制案例的 string、  list、  hash、  set、ordered set 数据类型操作。

3) 原子                        redis 所有操作都是原子性的,要么成功要么失败完全不执行。单个操作是原子性,多个操作也支持事务,即原子性,通过 multi 和 exec 指令包起来。

 

redis 通常被称为数据结构服务器,因为值(value)可以是字符串(string) 哈希(map) 列表(list)集合(sets)  有序集合(sorted sets)等类型。

1. 启动 redis 服务时,出现如下图:

解决方法:

 删除 E:\redis 文件夹下的 *.rdb 文件,重启 redis 容器即可

成功启动 redis 服务:

 

 

 

客户端命令

 

以下主要讲 Java 中使用 jedis 库操作 redis。

一。以下摘自百度百科:

1. 什么是 Redis
Redis 是由意大利人 Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis 全称为:Remote Dictionary Server(远程数据服务),该软件使用 C 语言编写,Redis 是一个 key-value 存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。
2. Redis 特点
Redis 以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。以设置和获取一个 256 字节字符串为例,它的读取速度可高达 110000 次 /s,写速度高达 81000 次 /s。
Redis 跟 memcache 不同的是,储存在 Redis 中的数据是持久化的,断电或重启后,数据也不会丢失。因为 Redis 的存储分为内存存储、磁盘存储和 log 文件三部分,重启后,Redis 可以从磁盘重新将数据加载到内存中,这些可以通过配置文件对其进行配置,正因为这样,Redis 才能实现持久化。
Redis 支持主从模式,可以配置集群,这样更利于支撑起大型的项目,这也是 Redis 的一大亮点。
3. Redis 应用场景,它能做什么
众多语言都支持 Redis,因为 Redis 交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的 I/O 开销,更重要的是可以极大提升速度。
拿大型网站来举个例子,比如 a 网站首页一天有 100 万人访问,其中有一个板块为推荐新闻。要是直接从数据库查询,那么一天就要多消耗 100 万次数据库请求。上面已经说过,Redis 支持丰富的数据类型,所以这完全可以用 Redis 来完成,将这种热点数据存到 Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。
总之,Redis 的应用是非常广泛的,而且极有价值,真是服务器中的一件利器,所以从现在开始,我们就来一步步学好它。

二 。 jedis 是官方推荐的,使用 Java 操作 redis 的类库,推荐大家使用 maven 去构建项目,maven 所需的 jedis 依赖如下:

<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
  其实这个依赖只有 3 个 jar 包,jedis-2.9.0.jar,commons-pool-1.6.jar,commons-pool2-2.4.2.jar,后面的两个 common 的 pool 包,是配置 jedis 的连接池用的,如果不想使用连接池,那么只要导入 jedis-2.9.0.jar 就够了。 

 

1.java 中  简单的 redis 连接示例     

左图  为连接代码           右图为  运行结果

 

               

2.  初始化 redis 连接池  

此处  是连接池的初始化配置。

从连接池中获取连接的时候,运行报错如下:

解决方式:

主要是由于服务启动的方式  。具体参考以下博文。

http://blog.csdn.net/u010011737/article/details/51149324

http://blog.csdn.net/rchm8519/article/details/48347797

 

 

 

Windows 下使用 redis requirepass 认证不起作用

1. 设置密码   

      1)命令行的形式去修改

      2) 修改安装目录下的 redis.Windows.conf 配置文件,找到 #requirepass footbared   , 去掉注释,变成 requirepass   mypassword

             ps: 重启之后,没有起作用,在可会断,输入命令   config get requirepass   会出现

         

2. 创建 redis-server.exe 的快捷方式,右键快捷方式属性,在目标后面增加 redis.windows.conf    这里很关键,虽然之前我们修改了 .conf 文件,但是 exe 却没有使用这个 conf

所以 我们需要手动指定一下 exe  按照修改后的.conf 运行。

 

redis 密码相关 可参考以下博文:

http://blog.csdn.net/lxpbs8851/article/details/8136126

 

修改成功密码以后  重启  就可用