docker pull redis:latest
docker images- [root@zero redis] docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- redis latest 7614ae9453d1 9 days ago 113MB
- mysql 5.7 c20987f18b13 10 days ago 448MB
- hello-world latest feb5d9fea6a5 3 months ago 13.3kB
- mkdir /home/redis/data #存放redis数据
- mkdir /home/reids/conf/redis.conf #存放redis配置文件
- bind 127.0.0.1 #注释掉这部分,使redis可以外部访问
- daemonize no #用守护线程的方式启动
- requirepass 123456 #密码 给redis设置密码
- appendonly yes #redis持久化 默认是no
- tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
- docker run -itd -p 6379:6379 -v /home/redis/conf:/etc/redis/conf \
- -v /home/redis/data:/data --name myredis \
- redis /etc/redis/conf/redis.conf --appendonly yes
命令解释说明:
-p 6379:6379 端口映射:前表示主机部分 :后表示容器部分。--name myredis 指定该容器名称,查看和进行操作都比较方便。-v 挂载目录(是目录不是文件),规则与端口映射相同。为什么需要挂载目录:docker是个沙箱隔离级别的容器,不能随便访问外部(主机)资源目录,所以需要挂载目录机制。-d redis 表示后台启动redisredis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
- [root@zero conf] docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 73b4d8f3bb95 redis "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp myredis
- 7eedeb6049c2 mysql:5.7 "docker-entrypoint.s…" 4 days ago Up 24 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql01
查看容器日志 docker logs 73b4d8f3bb9
[root@zero redis] docker exec -it 73b4d8f3bb95 /bin/bash
redis-cli- root@73b4d8f3bb95:/data redis-cli
- 127.0.0.1:6379> set hello 1
- (error) NOAUTH Authentication required.
- 127.0.0.1:6379> auth 123456 #密码,这是我的密码
- OK
- 127.0.0.1:6379> set hello world
- OK
- 127.0.0.1:6379> get hello
- "world"
- 127.0.0.1:6379> exit
- @RestController
- public class RedisDemoController {
- @Autowired
- private RedisTemplate<String,String> redisTemplate;
-
- @GetMapping("/helloword")
- public String demo(Long id){
- System.out.println(String.valueOf(id));
- String name=redisTemplate.boundValueOps(String.valueOf(id)).get();
- if(name==null){
- name=id+"+"+ UUID.randomUUID().toString();
- System.out.println("查询数据库");
- redisTemplate.boundValueOps(String.valueOf(id)).set(name);
- }
- Long id1=redisTemplate.boundValueOps("id").increment();
- System.out.println(id1);
- return name;
- }
- }