Redis 进击

in 软件 with 0 comment

redis

NoSQL

not only sql;
全新数据库理念;非关系型数据库;

NoSQL 特点

NoSQL 数据库的四大分类

NoSQL 产品

MongoDB、Redis、Riak等等

为什么需要 Redis ?

Redis 概述

高性能键值对数据库,支持的简直数据类型:

Redis 应用场景

Redis 安装

Mac

1、执行 brew install redis
2、启动 redis,可以使用后台服务启动 brew services start redis。或者直接启动:redis-server /usr/local/etc/redis.conf

启动配置

通过使用 Homebrew,可以大大降低在 Mac OS X 上设置和配置 Redis 开发环境的成本。

brew install redis

通过以上命令执行安装。

设置开机启动 Redis

ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents

通过 launchctl 启动 Redis 服务

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

使用配置文件启动 Redis 服务

redis-server /usr/local/etc/redis.conf

停用开机启动的 Redis

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

Redis 配置文件存放位置

/usr/local/etc/redis.conf

卸载 Redis 和依赖文件

brew uninstall redis

rm ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

获取 Redis 包信息

brew info redis

测试 Redis 服务是否正在运行

redis-cli ping

如果回复 “PONG”,表明正常运行!

Jedis

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

入门使用

/**
 * 项目名:demo
 * 包名:com.example
 * 类名:Test
 * 描述:
 *
 * @author Suremotoo
 * @create 2018-05-10 09:08
 */
public class Test {

    @org.junit.Test
    public void test() {
        // 1.连接 redis
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        // 2.存储数据
        jedis.set("name", "Suremotoo");
        // 3.获取数据
        String value = jedis.get("name");
        // 4.控制台打印测试结果
        System.out.println("value = " + value);
        // 5.关闭连接
        jedis.close();
    }

}

如果是连接的 Redis 在 Linux 服务器上,需要设置防火墙

vim /etc/sysconfig/iptables
# 添加一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

:wq 保存退出, 最后重启 linux 服务器防火墙

service iptables restart

Jedis 与 JDBC 很类似,也有连接池

    /**
     * 连接池方式连接
     */
    @org.junit.Test
    public void poolTest() {
        // 获得连接池的配置对象
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        // 设置最大连接数
        jedisPoolConfig.setMaxTotal(30);
        // 设置最大空闲连接数
        jedisPoolConfig.setMaxIdle(10);

        // 获得Jedis 连接池
        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "127.0.0.1", 6379);

        // Jedis 对象
        Jedis jedis = null;

        try {
            // 通过连接池获得连接
            jedis = jedisPool.getResource();
            // 设置数据
            jedis.set("name", "Suremotoo");
            // 获取数据
            String value = jedis.get("name");
            System.out.println("value = " + value);
            if (value != null && "".equals(value)) {
                jedis.del("name");
            } else {
                System.out.println(" 空 ");
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }

            if (jedisPool != null) {
                jedisPool.close();
            }
        }
    }