Redis入门篇

作者: 道韫 | 来源:发表于2016-06-17 16:54 被阅读176次

Redis 是一个高性能的key-value数据库。它支持存储的value类型包括string(字符串)、list(链表)、set(集合)、zset(sorted set--有序集合)和hash(哈希类型)。与memcached一样,数据都是缓存在内存中。区别的是redis会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
1)Mac环境下安装redis
从redis官网http://www.redis.io/ 下载redis最新版本redis-3.2.0.tar.gz,解压redis-3.2.0.tar.gz后去到目录cd redis-3.2.0,然后执行make命令进行安装,也可以执行make test命令看看redis 内部的一些东西是否OK,执行make test后的结果如下:

\o/ All tests passed without errors!
Cleanup: may take some time... OK

在启动redis之前先对配置文件redis.conf做一些修改:

后台运行,yes是后台运行,no是前台运行,将输出到终端(默认)
daemonize yes
如果daemonize参数为yes的话就会产生pid文件,以下是pid文件的定义
pidfile /var/run/redis.pid
日志输出文件,默认在前端运行的时候是stdout输出到终端,如果用守护进程运行的时候将日志输入到
/dev/null,如果想记录日志,就必须为其指定logfile位置
logfile <redis安装目录>/log/redis.log

接下来就可以运行命令./src/redis-server redis.conf启动redis,redis将会以后台的方式运行,可以用命令cat ./log/redis.log来查看redis的日志。

6383:M 16 Jun 12:38:54.013 * Increased maximum number of open files to 
10032 (it was originally set to 256).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.0 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 6383
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

6383:M 16 Jun 12:38:54.018 # Server started, Redis version 3.2.0
6383:M 16 Jun 12:38:54.019 * DB loaded from disk: 0.001 seconds
6383:M 16 Jun 12:38:54.019 * The server is now ready to accept connections 
on port 6379

从上面可以看出redis已经在本地运行起来了,默认端口是6379。
redis-cli 跟上命令会将参数发送到本地redis 6379的端口,下面来看看基本操作:

$ ./src/redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set mykey helloworld
OK
127.0.0.1:6379> get mykey
"helloworld"
127.0.0.1:6379> 

使用命令./src/redis-cli shutdown来关闭redis,执行完命令后可以查看到日志如下:

6383:M 16 Jun 16:42:34.244 # User requested shutdown...
6383:M 16 Jun 16:42:34.245 * Saving the final RDB snapshot before exiting.
6383:M 16 Jun 16:42:34.246 * DB saved on disk
6383:M 16 Jun 16:42:34.246 * Removing the pid file.
6383:M 16 Jun 16:42:34.246 # Redis is now ready to exit, bye bye...

2)使用java对redis进行操作
在java项目里面添加依赖的jar包:jedis-2.6.1.jar,junit-4.12.jar,commons-pool2-2.2.jar,然后创建如下的测试类:

package com.pa.redis;
import org.junit.*;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisTest {
 
    JedisPool pool;  
    Jedis jedis;  
    @Before  
    public void setUp() {  
        pool = new JedisPool(new JedisPoolConfig(), "127.0.0.1",6379);  
        jedis = pool.getResource();
    }
    @Test
    public void testString(){  
        //-----添加数据----------  
        jedis.set("name","alex");//向key-->name中放入了value-->alex 
        System.out.println(jedis.get("name"));//执行结果:alex  
  
        //-----修改数据-----------  
        //1、在原来基础上修改  
        jedis.append("name","edward");  //类似map将edward追加到已有的value之后  
        System.out.println(jedis.get("name"));//执行结果:alexedward  
  
        //2、直接覆盖原来的数据  
        jedis.set("name","钟汉良");  
        System.out.println(jedis.get("name"));//执行结果:钟汉良 
  
        //删除key对应的记录  
        jedis.del("name");  
        System.out.println(jedis.get("name"));//执行结果:null  
  
        /** 
         * mset相当于 
         * jedis.set("name","edward"); 
         * jedis.set("idol","钟汉良"); 
         */  
        jedis.mset("name","edward","idol","钟汉良");  
        System.out.println(jedis.mget("name","idol"));  
    }  
}

右键Run As -->Junit Test,会看到如下图的报错:



是因为缺少了依赖的hamcrest jar包,将hamcrest-core-1.3.jar添加到Java Build Path之后再运行结果如下:

alex
alexedward
钟汉良
null
[edward, 钟汉良]

如果执行shutdown的命令关闭本地的redis客户端,然后运行RedisTest将会报Connection refused的错误:


总结
本文主要介绍了mac环境下安装redis和使用java对redis进行一些简单的操作,这里推荐几个不错的redis学习网站:
基础学习:http://try.redis.io/
更多命令操作参考:http://redis.io/commands

相关文章

  • 平安金融科技测试技术周报(第十期)

    @author:柯星 本期导读:原创文章继续带来Redis入门篇以及Jmeter之Bean shell使用(一)(...

  • Redis入门篇

    Redis 是一个高性能的key-value数据库。它支持存储的value类型包括string(字符串)、list...

  • redis快速入门篇

    Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(...

  • Redis基础入门篇

    数据结构 字符串 :可以是字符串、数字、整形浮点数、二进制(图片/音频/视频),最大不超过512M。 设值命令 s...

  • Redis入门篇-安装

    前言 本文是基于Redis5.x版本 机器:MacBook Pro 官网(中文):http://www.redis...

  • Redis入门篇-基础配置

    什么是Redis? Redis,英文名叫(REmote DIctionary Server远程字典服务)是一个开源...

  • Redis学习笔记——入门篇

    一、什么是Redis? Redis是C语言开发的一个开源的(遵从BSD协议)高性能键值对(key-value)的内...

  • DevOps专题

    ---------- Docker ---------- Docker入门篇-概念 Docker入门篇-创建虚拟机...

  • redis系列--2.redis轻食入门

    看了上一篇的介绍,是不是急不可耐地想试试怎么玩转redis?这就来轻食入门篇。这篇文章主要使用CRUD四个命令。 ...

  • 入门篇 - 2. AudioRecord 采集音频PCM并保存到

    入门篇 - 1.ImageView、SurfaceView、自定义View 绘图入门篇 - 2. AudioRec...

网友评论

    本文标题:Redis入门篇

    本文链接:https://www.haomeiwen.com/subject/emdmdttx.html