三、Redis的高级命令及高级应用
2013-12-15 00:36
267 查看
Redis常用命令
一、键值名
1、keys * 返回所有的键 key
keys my*
2、exists 确认一个键是否存在
exists name 返回1存在 0不存在
3、del 删除一个键
del name 返回1删除成功
4、expire 设置一个key的过期时间
epire addr 10 // 设置addr10秒过期
ttl addr // 查看多少时间过期, 返回-1表示过期了
5、select 选择数据 在redis中的数据库是0 - 15 共16个数据库
select 0 // 选择当前数据库
set age 30
get age // 30
move age 1 // 将key移动到1数据库
get age // nil
select 1
get age // 30
6、persist 移除给定key的过期时间
expire age 300
ttl age
persist age
ttl age
7、randomkey 随机返回key空间的一个key
randomkey
8、rename 重命名
rename age age_new // 返回OK表示成功
9、type返回值的类型
type addr // string
trpe addrsfs // none
type myzset1 //zset
type myset1 //set
type mylist1 // list
二、服务器命令
1、ping 测试链接是否存活
返回PONS ,白哦事
2、echo 同 php
3、select 选择数据库。Redis数据库编号从0-15,我们可以任意选择一个数据库来进行数据的存储
select 1 select 2 select 3
4、exit quit 退出链接
5、dbsize 返回当前数据库的所有数目
6、info 获取服务器的信息和统计
7、config get实时传储收到的请求
config get *
config get dir
8、flushdb 删除当前选择数据中的所有key
dbsize
flushdb
dbsize
9、flushall 删除所有数据库中的所有key
dbsize
flushall
dbsize
三、Redis高级实用特性
1、安全性
设置客户端连接后进行任何其他指定前需要使用的密码,因为redis运行速度非常快,1秒可以达到150000次密码尝试,所以我们设置密码的时候需要非常强大的密码
在config文件下修改配置文件
# requirepass foobared
requirepass shenzhen
在客户端输入密码就可以了
auth shenzhen
也可以在登录的时候指定 ./redis-cli -a shenzhen
2、主从复制
Redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据副本
Redis主从复制特点:
1)Master可以拥有多个slave
2)多个slave可以连接同一个master外,还可以连接其他slave
3)主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
4)提高系统的伸缩性
配置主从服务器
配置slave服务器很简单,只需要在slave的配置文件中加入以下配置
slaveof 192.168.1.1 6379 #指定master的IP和端口
masterauth lamp 这是主机的密码
3、事务处理
Redis对事务的支持目前还是比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而不会插入其他client的命令
简单事务处理
multi //打开事务
set age 10
set age 20
discard // 取消事务回归
exec 1) OK 2)OK
get age // 20
乐观锁复杂事务控制
乐观锁:大多数是基于数据版本(version)的记录机制实现的。即为数据增加一个版本标识,在基于数据库表的解决方案中,一般是通过为数据库表添加一个"version"字段来实现读取数据时,将此版本号一同读出,之后更新时,对此版本号加1。
此时,将提交数据的版本号与数据库表对应记录的当前版本号进行对比,大于更新,否则时过期数据
例如:
session1
get age //10
watch age // 打开监控,就加入了乐观锁 unwatch,discard,exec都会清除所有监控
multi
set age 20
session2
set age 30
get age //10
然后再回到session1
exec
返回nil
get age // 30
4、持久化机制
Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化。
Redis支持两种持久化方式:
1)、snapshotting(快照)也是默认方式
写入到二进制文件中,叫dump.rdb。通过配置自动做快照持久化
save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 # 300秒内如果超过10个key被修改,则发起快照保存
save 60 10000 60秒内如果超过10000个key被修改,则发起快照保存
2)、Append-only file(缩写 aof)的方式 将操作写入文件
快照方式是有时间间隙的
aof笔快照方式有更好的持久化性,
redis会将每一个手哦到的写命令通过write函数追加到文件中,当redis重启时会通过重新执行文件保存写命令
由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘上,这样aof方式的持久化也还是有可能会丢失部分修改
可以通过配置文件告诉redis我们想要通过fsync函数强制os写入到磁盘的时机
appendonly yes //启用aof持久化方式
#appendsync always //收到写命令就立即写入磁盘,最慢,但是保证完全持久化
appendsync everysec //每秒钟写入磁盘一次,再性能和持久化方面做了很好的折中
#appendlsync no // 完全依赖ok,性能最好,但是没有保证
5、发布订阅消息
发布订阅(puh/sub)是一种消息通信模式,主要目的是解除消息发布者和消息订阅者之间的耦合
Redis作为一个pub/sub的server,再订阅和发布者之间起到了消息路由的功能。
订阅者可以通过subscribe和psubscribe命令向redis server订阅自己感兴趣的消息类型,redis将信息类型称为通道(channel)
当发布者通过publish命令向redis server发送特定类型的信息时,订阅信息类型的全部client都会收到此消息。
session 1
subscribe tv1 // 订阅tv1
session 2
subscribe tv1 tv2 // 订阅两个频道
session 3
publish tv1 tianhu // 上面两个session都会收到tianhu
publish tv2 huijia // session2会提示
6、虚拟内存的使用--只支持2.4之前的版本,之后的版本作者嫌开发麻烦,将这个功能舍弃掉了;它的核心思想是将key保留在内存中,而将值保留在磁盘上
再什么时候内存都是非常宝贵的,我们将那些不经常访问的数据交换到磁盘上形成虚拟内存
通过配置实现虚拟内存
vm-enable yes #开启vm功能
vm-swap-file /tmp/redis.swap
vm-max-memory 1000000 #内存上限
vm-page-size 32 #每个页面的大小32字节
vm-page 1332132123 #最多多少页
vm-max-threads 4 #用于执行value工作线程数量
一、键值名
1、keys * 返回所有的键 key
keys my*
2、exists 确认一个键是否存在
exists name 返回1存在 0不存在
3、del 删除一个键
del name 返回1删除成功
4、expire 设置一个key的过期时间
epire addr 10 // 设置addr10秒过期
ttl addr // 查看多少时间过期, 返回-1表示过期了
5、select 选择数据 在redis中的数据库是0 - 15 共16个数据库
select 0 // 选择当前数据库
set age 30
get age // 30
move age 1 // 将key移动到1数据库
get age // nil
select 1
get age // 30
6、persist 移除给定key的过期时间
expire age 300
ttl age
persist age
ttl age
7、randomkey 随机返回key空间的一个key
randomkey
8、rename 重命名
rename age age_new // 返回OK表示成功
9、type返回值的类型
type addr // string
trpe addrsfs // none
type myzset1 //zset
type myset1 //set
type mylist1 // list
二、服务器命令
1、ping 测试链接是否存活
返回PONS ,白哦事
2、echo 同 php
3、select 选择数据库。Redis数据库编号从0-15,我们可以任意选择一个数据库来进行数据的存储
select 1 select 2 select 3
4、exit quit 退出链接
5、dbsize 返回当前数据库的所有数目
6、info 获取服务器的信息和统计
7、config get实时传储收到的请求
config get *
config get dir
8、flushdb 删除当前选择数据中的所有key
dbsize
flushdb
dbsize
9、flushall 删除所有数据库中的所有key
dbsize
flushall
dbsize
三、Redis高级实用特性
1、安全性
设置客户端连接后进行任何其他指定前需要使用的密码,因为redis运行速度非常快,1秒可以达到150000次密码尝试,所以我们设置密码的时候需要非常强大的密码
在config文件下修改配置文件
# requirepass foobared
requirepass shenzhen
在客户端输入密码就可以了
auth shenzhen
也可以在登录的时候指定 ./redis-cli -a shenzhen
2、主从复制
Redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据副本
Redis主从复制特点:
1)Master可以拥有多个slave
2)多个slave可以连接同一个master外,还可以连接其他slave
3)主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
4)提高系统的伸缩性
配置主从服务器
配置slave服务器很简单,只需要在slave的配置文件中加入以下配置
slaveof 192.168.1.1 6379 #指定master的IP和端口
masterauth lamp 这是主机的密码
3、事务处理
Redis对事务的支持目前还是比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而不会插入其他client的命令
简单事务处理
multi //打开事务
set age 10
set age 20
discard // 取消事务回归
exec 1) OK 2)OK
get age // 20
乐观锁复杂事务控制
乐观锁:大多数是基于数据版本(version)的记录机制实现的。即为数据增加一个版本标识,在基于数据库表的解决方案中,一般是通过为数据库表添加一个"version"字段来实现读取数据时,将此版本号一同读出,之后更新时,对此版本号加1。
此时,将提交数据的版本号与数据库表对应记录的当前版本号进行对比,大于更新,否则时过期数据
例如:
session1
get age //10
watch age // 打开监控,就加入了乐观锁 unwatch,discard,exec都会清除所有监控
multi
set age 20
session2
set age 30
get age //10
然后再回到session1
exec
返回nil
get age // 30
4、持久化机制
Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化。
Redis支持两种持久化方式:
1)、snapshotting(快照)也是默认方式
写入到二进制文件中,叫dump.rdb。通过配置自动做快照持久化
save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 # 300秒内如果超过10个key被修改,则发起快照保存
save 60 10000 60秒内如果超过10000个key被修改,则发起快照保存
2)、Append-only file(缩写 aof)的方式 将操作写入文件
快照方式是有时间间隙的
aof笔快照方式有更好的持久化性,
redis会将每一个手哦到的写命令通过write函数追加到文件中,当redis重启时会通过重新执行文件保存写命令
由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘上,这样aof方式的持久化也还是有可能会丢失部分修改
可以通过配置文件告诉redis我们想要通过fsync函数强制os写入到磁盘的时机
appendonly yes //启用aof持久化方式
#appendsync always //收到写命令就立即写入磁盘,最慢,但是保证完全持久化
appendsync everysec //每秒钟写入磁盘一次,再性能和持久化方面做了很好的折中
#appendlsync no // 完全依赖ok,性能最好,但是没有保证
5、发布订阅消息
发布订阅(puh/sub)是一种消息通信模式,主要目的是解除消息发布者和消息订阅者之间的耦合
Redis作为一个pub/sub的server,再订阅和发布者之间起到了消息路由的功能。
订阅者可以通过subscribe和psubscribe命令向redis server订阅自己感兴趣的消息类型,redis将信息类型称为通道(channel)
当发布者通过publish命令向redis server发送特定类型的信息时,订阅信息类型的全部client都会收到此消息。
session 1
subscribe tv1 // 订阅tv1
session 2
subscribe tv1 tv2 // 订阅两个频道
session 3
publish tv1 tianhu // 上面两个session都会收到tianhu
publish tv2 huijia // session2会提示
6、虚拟内存的使用--只支持2.4之前的版本,之后的版本作者嫌开发麻烦,将这个功能舍弃掉了;它的核心思想是将key保留在内存中,而将值保留在磁盘上
再什么时候内存都是非常宝贵的,我们将那些不经常访问的数据交换到磁盘上形成虚拟内存
通过配置实现虚拟内存
vm-enable yes #开启vm功能
vm-swap-file /tmp/redis.swap
vm-max-memory 1000000 #内存上限
vm-page-size 32 #每个页面的大小32字节
vm-page 1332132123 #最多多少页
vm-max-threads 4 #用于执行value工作线程数量
相关文章推荐
- Redis的常用命令及高级应用开发
- redis常用命令及高级应用--服务器相关命令
- 【Redis 3】Redis数据库的学习与实践—Redis的常用命令及高级应用
- Redis数据库的学习与实践—Redis的常用命令及高级应用
- Redis的常用命令及高级应用
- Re:李捷_NoSQL数据库之Redis数据库管理五(Redis的常用命令及高级应用)
- Redis 笔记与总结5 Redis 常用命令之 键值命令 和 服务器命令 && 高级应用之 安全性 和 主从复制
- NoSQL数据库之Redis数据库管理五(Redis的常用命令及高级应用)
- 第2讲 Redis常用命令与高级应用
- NoSQL数据库之Redis数据库管理五(Redis的常用命令及高级应用)
- Redis数据库的学习与实践—Redis的常用命令及高级应用
- Redis的常用命令及高级应用
- redis常用命令及高级应用之键值的相关命令
- Redis的常用命令及高级应用
- Redis的高级应用-安全性和主从复制
- 小贝_redis高级应用-发布与订阅
- redis(五) 高级应用(事务处理,持久化操作,pub_sub、虚拟内存)
- VI高级命令集锦及VIM应用实例
- Linux 系统 Find命令的三个高级应用
- NoSQL之Redis高级命令详解--持久化机制