redis数据库2-高级应用
来源:互联网 发布:网络销售什么最赚钱 编辑:程序博客网 时间:2024/06/06 12:33
1.高级命令
1.keys *
获取所有key
2.exists判断key是否存在,存在返回1
exists age
3.del删除key为..的元素
del age
4.expire设置一个元素的过期时间。ttl查看元素的剩余时间,-1为已过期
set age 20
expire age 10
ttl age
-1
exists age
0
5.select,选择数据库(0-15个数据库)。move 将当前数据库的元素移动到其他数据库
select 0
set age 30
get age
30
move age 1
get age
nil
select 1
get age
30
6.persist移除给定key的过期时间
expire age 300
ttl age
292
persist age
ttl age
-1(已经取消过期时间)
7.randomkey随机返回一个key
8.rename 重命名key
rename age new_age
9.type 返回元素的类型
type list1
list
type set1
set
10.ping测试redis是否能连接
11.echo打印内容
echo a
a
12.quit/exit/ctrl c 退出客户端
13.dbsize 返回当前数据库的key的数目
14.info 查看redis服务器信息
15.config get dir/* 实时传储(打印)收到的dir/*的请求
16.flushdb 清空当前数据库
17.flushall清空所有redis数据库
2.高级应用
1.安全性(给redis.conf增加requirepass密码)
vi redis.conf
requirepass mima
pkill redis-server
redis-server redis.conf
a1 redis-cli -a mima
a2 1 redis-cli
a2 2 auth mima
2.主从复制(master与slave数据库同步)
1.slave与masyer 建立连接,发送同步命令
2.master会启动一个进程将数据库快照保存到文件,同时master也会执行其他的存储命令并缓存
3.完成保存后,将文件发送到slave
4.slave将文件保存到磁盘
相关配置:
从机需要配置主机的ip、端口及密码
1.slaveof 192.168.88.89 6379
2.masterauth mima
查看主从关系:info
role:master
slave0:192.168.88.90,6379,online
3.事务处理multi
multi 打开事物
exec 开始按顺序执行事物
discard 取消事物,清空事物队列
例1:
get age
100
multi
set age 10
set age 20
exec
get age
20
例2:
get age
100
multi
set age 10
set age 20
discard
get age
100
与mysql的事物不同,redis的事物若有一条指令发生错误,实物不会回滚(redis需要改进的地方)
乐观锁:watch 若使用watch监控一个Key,这个元素从调用watch后发生过变化,整个事物会失败。断开连接或使用exec、discard、unwatch都会清除监控。
例:
session1:
get age
10
watch age
multi
session2:
set age 30
get age
30
session1:
set age 20
exec
nil(执行失败)
get age
30
4.持久化机制
redis需要经常将内存里的数据同步到磁盘实现持久化。
1.快照(默认方式)
快照是将内存中的数据写入到二进制文件,默认文件名dump.rdb。可redis.conf配置发起快照的条件:
save 900 1 (900秒内超过1个key被修改发起)
save 300 10 (300秒内超过10个key被修改发起)
900/300 秒内只会发起一次快照,这样的持久化可能导致数据丢失,所以有aop的方式持久化。
2.aof
aof有更好的持久性,redis会将每一个收到的写命令通过write追加到文件中,重启时,会重新执行文件中的写命令在内存中重建整个数据库
由于os会在内核中缓存write做的修改,所以可能不是立即写入到磁盘,可能导致数据丢失。所以需要redis.conf配置强制os写入磁盘的时机:
appendonly yes
a1 appendfsync always //收到的写命令立即写入磁盘,性能差,持久化最好
a2 appendfsnc everysec //每秒写入磁盘一次,性能与持久化折中
a3 appendfsyc no //完全依赖os,性能最好,持久化差
5.发布与订阅信息
订阅者可通过subscribe订阅自己感兴趣的消息类型,redis将消息类型称为通道。发布者可通过publish发送特定类型的消息时,订阅该消息类型的全部client会收到此信息
client1 subscribe tv1
client2 subscribe tv1 tv2
client3或主机 publish tv2 hello
client2
1) message
2)tv2
3)hello
6.虚拟内存
把不经常访问的数据交换到磁盘上,节约内存开销。
redis.conf配置
vm-enabled yes 开启vm功能
vm-swap-file /tmp/redis.swap value保存的路径
vm-max-memory 1000000 redis使用的最大内存上限
vm-page-size 32 每个页面32字节
vm-pages 134217728 最多使用多少个页面
vm-max-threads 用于value对象换入工作线程的数量
启动redis时会提示如果确认要使用vm功能需要在redis.conf里加入 really-user-vm yes
阅读全文
0 0
- redis数据库2-高级应用
- 【redis】——高级应用(2)
- Redis:高级应用
- redis-高级应用
- Redis的高级应用
- redis入门----高级应用
- redis高级应用
- Redis高级应用
- 【Redis 3】Redis数据库的学习与实践—Redis的常用命令及高级应用
- NoSQL数据库之Redis数据库管理五(Redis的常用命令及高级应用)
- 06_NoSQL数据库之Redis数据库:Redis的高级应用之登录授权和主从复制
- 06_NoSQL数据库之Redis数据库:Redis的高级应用之登录授权和主从复制
- NoSQL数据库之Redis数据库管理五(Redis的常用命令及高级应用)
- Redis数据库的学习与实践—Redis的常用命令及高级应用
- Redis数据库的学习与实践—Redis的常用命令及高级应用
- Redis的强大高级应用
- 应用高级数据结构优化Redis
- redis 高级应用— 安全性
- leetcode 69. Sqrt(x)(C语言,牛顿迭代法求开方问题)46
- request和response的页面跳转
- 为了奥运会,科技巨头们都亮出哪些看家本领
- cf-Link/Cut Tree
- Spring Boot使用ServletFileUpload上传文件失败
- redis数据库2-高级应用
- Pthon环境搭建
- 在Docker中部署django
- IDC Q2调研报告:中国成为世界手机市场的主战场
- 记录
- Defcon CTF腾讯安全助力中国战队冲冠
- 记探险者“玉兔”的坚守:我们的征途是星辰大海
- 在未设置的情况下,机器人如何提醒我们日常安排
- 2016中国智能家居创业公司百强榜单出炉,坚果智能影院斩获第一