在网上学了redis的入门后,将学习的剩下内容整理如下:
1.关于key的通用操作
1.查询数据库里的keys列表集合
keys *
举个栗子:看我到现在的有多少个对象存在
2.查询数据库里的有关键词的对象
keys *keyword* #关键词是keyword的 keyword位置不重要
keys keyword? #关键词前面必定是keyword内容,后面是1个模糊的内容
keys keyword?? #关键词前面必定是keyword内容,后面是2个模糊的内容
举个栗子:我看我这有多少个对象是有关键词my的
3.查询某个对象是不是在当前数据库里
exists member
举个栗子:查看myset存在不,存在返回1 不存在为0
4.获取key的value(我觉得只是针对于string)
get key
举个栗子:我取得String 类型的key的value
5.修改名称
rename oldname newname
举个栗子:我把myset改成yourset
6.设置过期时间,时间一过就会被删除掉
ttl是去看还有多少时间过期
expire key second
ttl key
举个栗子:我去设置一个String类型的对象,让他在10秒后删除,ttl查看还有多久被删除
为啥是-2呢:不存在时TTL会返回-2,当没有为键设置过期时间时,使用TTL获取键的剩余时间将会返回-1
举个花生:再写一个String类型的对象:不设置时间
怎么取消掉设置好的过期时间呢:
persist key
当然如果是String类型的使用set也可以
举个栗子:
7.看对象是什么类型
type key
就是说看这个key对应是什么类型 string? set?list?
举个栗子:
2.关于redis的特性
两个方面:
1、选择数据库 默认为0
select 数据库序号
举个栗子:我选择使用数据库1,再选择0
怎么将0号数据库里的东西放到1号去呢: move
move key db
举个栗子:我把ergouzi拖动到1号数据库去
2、事务
像关系型数据库一样支持事务
multi #开启事务
╭(╯^╰)╮ 正常操作1
(ˉ▽ ̄~) ~~ 正常操作2
ー( ̄~ ̄)ξ 正常操作3
exec #确定
discard #取消
举个栗子:emm,,把ergouzi在事务里面进行数值的修改,然后分别执行和取消一次
3.RDB和AOF的持久化(还有无持久化)
RDB持久化:
优势:存储到一个文件中 方便快捷 进程少 数据集大启动效率比aof高
缺点:数据易丢失 数据集大会导致服务器停止几秒
配置:redis.conf 关于save的三处 ,名字命名, 保存路径
save的存入方式:
名字
也可以看到配置文件旁边就有:
还有一个保存路径:
AOF持久化
优势:每秒同步 每修改同步 安全
日志写入操作是append追加模式 数据过大 redis可以重写启动
格式清晰的日志文件
缺点:文件相对rdb大 运行效率相对低下
需要修改的地方:
1.打开
将其改为yes
这个是命名
还有一个同步策略需要打开:
一般使用always
然后重启服务(记得加载配置文件)
就会看到当前目录有这个aof后缀的文件了(我没去测试)