使用redis

环境

Ubuntu 16.10 ip 10.5.202.160

Docker 17.03

Redis 3.2.9

一. 服务安装

1. 拉取镜像

docker pull redis:3.2.9

2. 启动容器

docker run --name r1 -d redis:3.2.9

二. 命令行客户端

首先进入容器 docker-enter r1

通过命令 ip a 查询redis所在的容器IP 172.17.0.2

客户端连接

redis-cli –h 127.0.0.1 –p 6379

添加数据 删除数据

对数据设置过期时间(单位为秒)

127.0.0.1:6379> SET aa a1

OK

127.0.0.1:6379> set bb a2

OK

127.0.0.1:6379> DEL bb

(integer) 1

127.0.0.1:6379> EXPIRE aa 60

(integer) 1

设置密码

127.0.0.1:6379> CONFIG set requirepass 456

OK

127.0.0.1:6379> CONFIG get requirepass

1) "requirepass"

2) "456"

127.0.0.1:6379> AUTH 456

OK

三. 数据类型

key value

Key :字符串

Value : 可以是字符串或数字 ,作为数字时可以执行自增操作

过期时间

Lists

基于linkedlist实现 所有在头尾添加删除元素都快 适合在很大的表上添加数据

但基于索引的效率就没那么快了

list可被用来实现聊天系统

也有用它实现消息队列的

hash

相当与java中的map

以键值对的方式保存对象

Sets

会返回无序集合

支持交集 并集的操作

数据特性

都支持设置 过期时间

数据都通过字符串 Key 获取

在mysql中有【数据库表.具体行】

在redis中 可以用key做标记 set “表:”

Redis支持事务的操作

四. 增删改查

在windows环境进行编写代码,

而redis处于另一台linux机器的docker中

Windows机器ip为10.5.202.110

Linux的机器为10.5.202.160 redis所在容器中的ip为172.17.0.2

此处打开windows命令行设置路由,使本地可以访问docker中的redis

route -p add 172.17.0.0 mask 255.255.0.0 10.5.202.160

使用maven引入客户端jedis

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.9.0</version>

</dependency>



@Before
public void setup() {
    // 连接redis服务器
    jedis = new Jedis("172.17.0.2", 6379);
    // 用密码登陆
    // jedis.auth("pwd");
}

/**
 * redis 操作字符串 增删改查
 */
@Test
public void test1_String() {
    String key = "count";
    jedis.set(key, "num1 ");
    System.out.println(jedis.get(key));

    // 追加
    jedis.append(key, "num2 ");
    System.out.println(jedis.get(key));

    // 删除
    jedis.del(key);
    System.out.println(jedis.get(key));

    // 设置多个键值对
    jedis.mset("name", "zs", "age", "11", "phone", "123");
    // 原子性的自增操作
    jedis.incr("age");
    System.out.println("----------------");
    System.out.println(jedis.get("name"));
    System.out.println(jedis.get("age"));
    System.out.println(jedis.get("phone"));

}


五. GUI客户端

目前感觉好用的客户 RedisDesktopManager

https://github.com/uglide/RedisDesktopManager/releases

六. 安全

1. 修改默认的6379端口

2. 最好只绑定本地的ip上,而不使用公网ip

3. 因redis速度快,可以被访问者告诉的提交密码进行试错,所有密码应该设置的长一点

编辑配置文件参数 redis.conf

port 8101
bind 127.0.0.1 
requirepass "hello world"
posted @ 2017-06-06 18:44  fluffy  阅读(133)  评论(0)    收藏  举报