提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本人是一个刚刚学习Java的小萌新,在淘宝上购买的黑马讲的java教程,通过看他的教程学习,总结一点自己的学习过程和碰到的问题,和大家分享一下,若有不对,欢迎大家评论留言呀!!!
一、redis的概念
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 redis的默认端口号是6379。
关系型数据库:Mysql,oracle.
非关系型数据库:redis,hbase.
关系型数据库:数据直接有关联关系;数据存储在硬盘的文件上。
非关系型数据库:数据直接没有关联关系;数据存储在内存中。
二、redis的下载方式
由于我本身下载有docker了,所以通过下面链接下载redis
docker安装redis
补充说明:
redis-cli 是Redis命令行工具,是一个命令行客户端程序,可以将命令直接发送到Redis,并直接从终端读取服务器返回的应答
重新进redis的命令:
docker exec -it redis-test3 /bin/bash
(redis-test是自己取的数据库名)
再输入命令redis-cli
三、redis的命令操作
1)redis的数据结构:
redis存取:是value格式的数据,其中key都是字符串,value有5种不同的数据结构。
value的数据结构:
1.字符串类型string;
2.哈希类型hash
;
3.列表类型list
;
4.集合类型set
;
5.有序集合类型sortedset
。
实例:
set test(key) 1放入“1”的值放入redis里存,命令成功会出现ok
Get test就是把test里的“1”取出来。主要是通过key值不同来进行非联系数据存取。
效果图:
2)常用命令
1.String:
存数据:set test one
取数据:get test
判断key是否存在:exists test
删除key:del test
2.Hash:(适合对象)
存数据:hset myhash one two
(one是列名,two是值)
取数据:hget myhash one
判断key是否存在:hexists myhash one
查看所有的key和值:hgetall myhash
删除key:hdel myhash one
(key值)
3.List:可以添加一个元素到列表的头部(左边)或者尾部(右边)
新添加b会把a往中间挤
存数据:lpush test one lpush test two
取数据:lrange test 0 -1
(0 -1是指从头到尾的范围取出)
效果图:
删除列表最左边的元素,并将元素返回:lpop test
删除列表最右边的元素,并将元素返回:rlpop test
效果图:
4.set:不允许有重复元素
存数据:sadd tet o n e
获取key集合里的所有数据:smembers tet
删除命令:srem tet e
效果图:
5.sorted set:
存数据:zadd account 50 li
取数据:zrange account 0 -1/zrange account 0 -1 withsore
删除数据:zrem account li
效果图:
通用命令:
key *
:查询所有的键
type key
: 获取键对应的value的类型
del key
:删除指定key value# 欢迎使用Markdown编辑器
效果图:
四、redis的持久化
1.redis是一个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失,我们可以将redis内存中的数据持久化报错到硬盘的文件
2.redis持久化机制:
RDB:默认方式,不需要进行配置,默认就是要这种机制
在一定的间隔时间中,检查key的变化情况,然后持久化数据
(不能保证所有数据到保存在硬盘中,可能会有部分丢失)
怎么实现持久化呢:
进入到redis.conf里找到:save语句
将前面的注释删除掉,然后将save语句更改为你想要的。
效果图:
save 10 5
的中文意思:
10秒内至少5个key值改变(则进行数据库保存–持久化)
安装时遇到的问题:
1.docker里是没有vi命令的:
怎么解决呢:这时就需要输入命令 apt-get update
然后再输入:
apt-get install vi
,不成功就输入apt-get install vim
就好了。
这时候docker就可以使用vi命令了
2.docker在安装redis的时候是没有配置文件的:
在官网上下载最新的redis.conf文件
github
3.输入命令让docker在使用redis时指向我们需要用的配置文件:
docker run -d --privileged=true -p 6380:6379 -v /Users/tuya/Desktop/资料/redis-tuya.conf:/etc/redis/redis.conf --name redis-test3 redis redis-server /etc/redis/redis.conf --appendonly yes
补充:–privileged使用到权限,冒号的左边是本地的端口,右边是redis默认端口,最好不要改redis的指定端口,在我们需要多个数据库时,改左边端口名就好了;-v后面的是本地路径下的redis.conf文件 --name后面是自己设定的数据库名称。改一次配置文件,都需要重新启动容器,在进回数据库里哟!
AOF:日志记录的方式,可以记录每一条命令的操作。可以每一次命令操作后,持久化数据。对电脑伤害大
编辑redis.conf文件
Appendonly no
(关闭aof) 更改appendonly yes
(开启aof)
appendfsync always
:每一次操作都进行持久化
appendfsync everysec
:每个一秒进行一次持久化
appendfsync no
:不进持久化
以上三条命令,大家可以选择需要的持久化方式