一、Redis简介
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
二、安装
1、安装依赖
yum -y install gcc gcc-c++ tcl
2、可以使用wget选择对应的版本下载
cd /usr/local/src/ # 下载 wget http://download.redis.io/releases/redis-4.0.9.tar.gz # 解压 tar xzf redis-4.0.9.tar.gz # 切换到解压目录 cd redis-4.0.9/src # 编译,编译出错就使用:make MALLOC=libc 编译 make
# 测试
make test
# 指定安装到对应目录
make install PREFIX=/usr/local/redis/
# 复制配置文件到安装目录
cp redis.conf /usr/local/redis/
修改/redis.conf (可以取消 #requirepass foobared这行注释,foobared则为登陆密码,如我设置成admin)
# 修改可以远程访问 bind 0.0.0.0 # 修改保护模式 protected-mode no # 修改成后台启动 daemonize yes # 将文件名改成redis要启动的端口,如果安装多个redis pidfile /var/run/redis_6379.pid # 数据存储目录,改成绝对路径 dir /usr/local/redis/data/
主从配置,只需要添加一行配置信息,在新的机器上安装redis,重复1-2步骤,在redis.conf里添加主节点的ip和端口信息
# 添加主从配置
slaveof 主节点ip 主节点启动的端口
3、启动和停止(如果不加redis.conf配置参数的话,则默认初始密码是空)
# 启动并指定配置文件
/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
# 关闭
/usr/local/redis/bin/redis-cli shutdown
4、登陆客户端
/usr/local/redis/bin/redis-cli
auth admin
5、查询和设置登陆密码
config get requirepass config set requirepass 新密码
三、使用java进行连接测试
1、现在redis驱动包,添加gradle依赖(maven改下格式就好了)
compile group: 'redis.clients', name: 'jedis', version: '2.9.0'
2、测试代码
package com.moy.redis; import redis.clients.jedis.Jedis; import java.util.Arrays; import java.util.Iterator; import java.util.Set; import java.util.UUID; /** * [Project]:moy-gradle-project <br/> * [Email]:moy25@foxmail.com <br/> * [Date]:2018/2/7 <br/> * [Description]: <br/> * * @author YeXiangYang */ public class RedisTest { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.182.128", 6379); jedis.auth("admin"); connectTest(jedis); saveString(jedis); saveList(jedis); saveSet(jedis); listAllKey(jedis); jedis.close(); } private static void saveSet(Jedis jedis) { String setKey = "set-key"; jedis.sadd(setKey, "-1", "-1", "2"); System.out.println("[saveSet]:" + Arrays.toString(jedis.smembers(setKey).toArray())); } private static void listAllKey(Jedis jedis) { Set<String> keys = jedis.keys("*"); Iterator<String> iterator = keys.iterator(); System.out.print("[listAllKey]:"); while (iterator.hasNext()) { System.out.print(" " + iterator.next()); } System.out.println(); } private static void saveList(Jedis jedis) { String listKey = "save-list"; jedis.lpush(listKey, "[list1]" + UUID.randomUUID().toString()); jedis.lpush(listKey, "[list2]" + UUID.randomUUID().toString()); jedis.lpush(listKey, "[list3]" + UUID.randomUUID().toString()); System.out.println("[saveList]:" + Arrays.toString(jedis.lrange(listKey, 0, 2).toArray())); } private static void saveString(Jedis jedis) { jedis.set("hello", "tony"); String value = jedis.get("hello"); System.out.println("[saveString]:" + value); } private static void connectTest(Jedis jedis) { System.out.println("[connectTest]:" + jedis.ping()); } }
yexiangyang
moyyexy@gmail.com