使用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 8101bind 127.0.0.1 requirepass "hello world"

浙公网安备 33010602011771号