• 每天进步一点点!

文章分类

推荐网站

常用手册

批量删除Redis数据库中的Key【转载】

批量删除Key,Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作。

  • 删除所有key
redis-cli keys "*" | xargs redis-cli del  
//如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径  
//如:/opt/redis/redis-cli keys "*" | xargs /opt/redis/redis-cli del  
  • 如果要指定 Redis 数据库访问密码,使用下面的命令:
redis-cli -a password keys "*" | xargs redis-cli -a password del  
  • 如果要访问 Redis 中特定的数据库,使用下面的命令:
//下面的命令指定数据序号为0,即默认数据库  
redis-cli -n 0 keys "*" | xargs redis-cli -n 0 del
  • 删除所有Key,可以使用Redis的flushdb和flushall命令:
//删除当前数据库中的所有Key  
flushdb  
//删除所有数据库中的key  
flushall  

注:keys 指令可以进行模糊匹配,但如果 Key 含空格,就匹配不到了,暂时还没发现好的解决办法。

类别:NoSQL | 浏览(75) | 评论(0) | 阅读全文>>

Redis的主从复制【原创】

在Redis中使用复制功能非常容易,只需要在从数据库的配置文件中加入“slaveof 主数据库IP 主数据库端口”即可,如果主数据库需要授权密码,还需要在从数据库的配置文件中加入主数据库的授权密码"masterauth 主数据库密码",主数据库无需进行任何配置。

 

原理


当一个从数据库启动后,会向主数据库发送SYNC命令,主数据库接收到SYNC命令后会开始在后台保存快照(即RDB持久化的过程),并将保存期间接收到的命令缓存起来。当快照完成后,Redis会将快照文件和所有缓存的命令发送给从数据库。从数据库收到后,会载入快照文件并执行收到的缓存的命令。当主从数据库断开重连后会重新执行上述操作,不支持断点续传。

 

拓扑图

 

  • 主数据库A:192.168.1.110:6379 
  • 从数据库B:192.168.1.112:6379 
  • 从数据库C:192.168.1.113:6379 

 

  1. 启动主数据库A
/usr/local/redis-stable/bin/redis-server /usr/local/redis-stable/etc/redis.conf  &

 

  1. 进入主数据库A,为了方便测试,这里用flushall命令清除所有数据。

 

类别:NoSQL | 浏览(122) | 评论(0) | 阅读全文>>

Redis的持久化【转载】

 Redis的强劲性能很大程度上是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中以某种形式同步到硬盘中,这一过程就是持久化。
   

Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或将二者结合使用。

 

RDB方式

 

RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的所有数据进行快照并存储在硬盘上。进行快照的条件可以由用户在配置文件中自定义,由两个参数构成:时间和改动的键的个数。当在指定的时间内被更改的键的个数大于指定的数值时就会进行快照。RDB是Redis默认采用的持久化方式,在配置文件中已经预置了3个条件:

 

save 900 1
save 300 10
save 60 10000

 

save参数指定了快照条件,可以存在多个条件,条件之间是“或”的关系。如上所说,save 900 1的意思是在15分钟(900秒钟)内有至少一个键被更改则进行快照。如果想要禁用自动快照,只需要将所有的save参数删除即可。

 

Redis默认会将快照文件存储在当前目录的dump.rdb文件中,可以通过配置dir和dbfilename两个参数分别指定快照文件的存储路径和文件名。

类别:NoSQL | 浏览(440) | 评论(0) | 阅读全文>>

Redis的安装和访问授权配置【原创】

  • 安装redis
wget http://download.redis.io/releases/redis-stable.tar.gz
tar zxvf redis-stable.tar.gz -C /usr/local/
cd /usr/local/redis-stable/
make && make install

 

  • 为了方便管理,我们新建两个目录bin和etc,分别用于存放redis的可执行命令文件和配置文件
mkdir /usr/local/redis-stable/bin
mkdir /usr/local/redis-stable/etc
cd /usr/local/redis-stable/src/
mv redis-server redis-cli redis-sentinel redis-check-dump redis-benchmark redis-check-aof mkreleasehdr.sh ../bin
cd ..
mv redis.conf etc/

 

  • 启动redis
/usr/local/redis-stable/bin/redis-server /usr/local/redis-stable/etc/redis.conf &

 

  • 查看redis是否启动成功
netstat -tnl

如果看到下面的显示说明,redis启动成功了,redis的默认端口为6379

tcp    0    0 0.0.0.0:6379        0.0.0.0:*    LISTEN 

 

  • 进入redis终端
/usr/local/redis-stable/bin/redis-cli

 

  • 停止redis
/usr/local/redis-stable/bin/redis-cli shutdown
#或
pkill redis-server
#或
killall redis-server

 

类别:NoSQL | 浏览(144) | 评论(0) | 阅读全文>>