吃喝玩乐在潮州(www.521000.wang) 潮州本地化社区!

Redis应用 一常用命令

生活分享 逃小七 1379℃ 2评论

Redis应用  一常用命令

这些命令提供了对数据库和各种数据库类型进行操作,这些命令是可以在linux的终端执行。

  1. 键值命令

命令 说明 使用
kes 返回满足给定pattern的所有键 keys *//返回所有的键
key my* //返回所有my开头的
exists 判断key是否存在 exists name //判断有没有name这个键
del 删除一个key,返回0失败 del mykey //删除mykey
expire 设置一个key的过期时间 expire mykey //设置mykey的过期时间
ttl 查看某个key的生命周期,-1 是过期,单位是秒 ttl mykey //查看mykey的生命周期
move 将当前数据库的key转义到其他数据库,0表示失败 move itim 1//从当前数据库移动itim到1库
select 选择要使用的数据库 select 1 //选择1这个数据库进行操作
persist 取消生命周期设置,不是删除,就是不过期 persist itim
randomkey 随机返回库中的一个键 randomkey
rename 重命名一个key,成功返回ok rename key mykey
type 查看键的数据类型 type mykey

   服务器命令

命令 说明 使用
ping 测试连接是否存活,返回pang ping
echo 输出内容到STD echo 你好
select 数据库编号是从0-15,可以使用任意一个 select 编号
quit 退出客户端
dbsize 返回当前数据库中所有key的个数 dbsize
info 获取服务器的信息和统计 info
config get 实时转储收到的参数请求 config get *//获取所有
config get dir//获取目录信息
flushdb 情况数据库中所有的key,成功返回ok flushdb
flushall 删除所有数据库中的所有键 flushall

Redis的高级应用

  1. 安全性
    1. 设置使用密码,redis相当快1秒可以进行15w次密码枚举,因此需要设置强大的密码防爆力。
      1. 在配置文件中配置:requirepass 密码
      2. 连接后:auth 密码 或者 连接登陆时使用 redis-cli -a 密码
  2. 主从复制

    通过主从复制可以允许多个slave Server 拥有和master Server相同的数据副本.

    特点:

  • Master 可以拥有多个slave
  • 多个slave可以连接同一个master外,还可以连接其他的slave
  • 主从复制不会阻塞master,在同步数据时master可以继续处理client的请求

配置:     只需要在slave的配置文件中加入

slaveof 192.168.1.1 6379 //指定master的ip和端口

masterauth 密码 //设置连接master的密码

判断结点是master还是slave,只需输入命令info,然后查看role信息

3.  事务处理

它的事务处理是非常的不成熟的,不是很可靠稳定.它只能保证一个client发起的事务中命令可以连续的执行,中间不会插入其他的client命令,当一个client在连接中发出multi命令时这个连接进入一个事务上下文中,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中的所有命令.当在事务没执行的时候可以执行discard来取消事务,这样会清空该client的事务队列,退出事务上下文.

          当事务队列中有命令错误或者异常,正确的命令是会被提交的,失败的执行不成功,但整个事务是不会回滚的。

4.   持久化机制

Redis是支持持久化的内存数据库,redis需要经常将内存中的数据同步到硬盘来保证持久化.

两种持久化方式:

  • Snapshotting(快照方式) 默认采用的方式 //只是将数据存储到文件中,它是将内存数据快照方式写入二进制文件中,默认文件名dump.rdb,可以设置持久化的方式,多长时间内多少个key被修改就自动做快照.
    save 900 1 //900秒内如果超过1个key被修改则发起快照保存
    save 300 10 //如果300秒内超过10个key被修改则发起快照保存
    这个save命令可以同时配置多个
  • Append-only file (AOF) 方式,//将写和更改的操作存入文件中,快照方式是间隔一定时间做一次,如果redis以外down掉就会丢失最后一次快照后的所有修改,AOF比快照方式有更好的持久化性,使用AOF方式redis会将每次收到的命令通过write函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令,在内存中重建整个数据库内容.
    由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘上,这样aof方式的持久化还是有可能丢失部分修改.可以通过配置文件告诉redis我们要通过fsync函数强制OS写入磁盘的时机.他的默认存储文件为:appendonly.aof
    appendonly yes //配置启用AOF方式进行持久化
    appendfsync always //配置收到写命令就立即写入磁盘,最慢但是保证完全的持久化
    appendfsync everysec //每秒钟写入磁盘一次,在性能和安全方面做了折中的处理方式
    appendfsync no     //完全依赖OS,性能最好,但是持久化没保证

5.   发布订阅

Pub/sub是一种消息通信模式,主要目的是解除消息发布者和消息订阅者之间的耦合,redis作为一个pub和sub的server在两者之间起到了消息路由的功能,订阅者通过subscribe和psubscribe命令想redis Server订阅自己感兴趣的消息,redis将消息类型称为通道(channel),当发布者通过publist命令向redis Server发送特定类型的消息时,订阅该消息类型的全部client都会收到此消息.

6.   虚拟内存

Redis的虚拟内存和操作系统的虚拟内存不是一回事,但想法和目的是相同的,就是把暂时不经常访问的数据从内存交换到磁盘中,释放更多的内存空间用于其他要访问的的数据,除了这种方法外,还可以将数据分别存放到多个redis server中,也可以达到扩大使用空间的目的.虚拟内存简称VM.

配置

vm-enabled yes //开启VM的功能

vm-swap-file /tmp/redis.swap //交换出的value保存在的文件路径

vm-max-memory 1000000 //redis使用的最大内存上限

vm-page-size 32 //每个页面的大小32字节

vm-pages 132454777 //最多使用多少页面

vm-max-threads 4 //用于执行value对象换入换出的线程数

转载请注明:逃小七(Richard) » Redis应用 一常用命令

喜欢 (1)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 留着以后看
    逃小七2016-02-19 17:11 回复
  2. 用胶水就用乐泰胶水和可赛新胶水这才是正确的选择 https://www.hyhaote.com
    好特易购2018-04-27 15:10 回复