linux(centos)下redis安装、使用、优化

Rdis优点

1、与memcached不同,Redis 可以持久化存储数据。

2、性能很高:Redis能支持超过10w每秒的读写频率。

3、丰富的数据类型:Redis支持二进制的String,List,Hashes,Sets及sorted Sets等数据类型操作。

4、原子:Redis的所有操作都是原子的。

5、丰富的特效:Redis还支持publish/subscribe(发布/订阅),通知,key过期等等特性。

6、redis支持异机主从复制。

Redis缺陷与陷阱

1、不同命令延迟差别极大

2、内存管理开销大。

Redis 应用场景

http://blog.nosqlfan.com/html/2235.html  

Redis安装

将软件安装在home/tanzhang/tools 目录

cd /home/tanzhang/tools

wget http://download.redis.io/releases/redis-3.2.2.tar.gz

tar xf redis-3.2.2.tar.gz

cd redis-3.2.2

make   用make安装

make PREFIX=/application/redis-3.2.2 install     PREFIX安装路径

ln -s/application/redis-3.2.2/ /application/redis  建立ln文件  类似与快捷方式,对ln文件操作就是对源文件操作。

命令执行完毕后会在/application/redis/bin出现以下目录

redis-server: Redis服务器daemon启动程序

redis-cli : 命令执行工具,相当于客户端

redis-benchmark: 性能测试工具。

redis-check-aof: 对更新日志appendonly.aof检查,是否可用。

redis-check-dump:用于本地数据库rdb文件的检查。


配置环境变量

echo 'PATH=/application/redis/bin/:$PATH'  >>  /etc/profile

tail -1 /etc/profile

.  /etc/profile或者 source /etc/profile

which redis-server 查看配置是否成功

redis-server –h    查看帮助

mkdir /application/redis/conf  创建

[root@bzhang redis-3.2.2] cp redis.conf/application/redis/conf/    将 redis-3.2.2目录文件拷入

[root@bzhang redis-3.2.2]# redis-server/application/redis/conf/redis.conf &  启动

&后台启动

lsof -i :6379  lsof   list open file   -i   用以显示符合条件的进程情况
===========可不配置====================

sysctl vm.overcommit_memory=1 

vi /etc/sysctl.conf 

将vm.overcommit_memory = 1放在最后

sysctl –p


vm.overcommit_memory  参数

0 默认,当用户空间请求更多的内存时,内核尝试估算剩余可用的内存。

1 内核允许超量使用内存直到用完为止,主要用于科学计算。

2:内存会使用一个绝不过量使用的内存算法,即系统整个内存地址空间不能超过swap+50%的RAM值。

===========可不配置====================

redis-cli shutdown 关闭

redis-cli  进入redis     参数  -h [ip] -p[port]  -a[密码]

两种进入方式

[tanzhang@bzhang ~]$redis-cli -h 127.0.0.1 -p 6379

[tanzhang@bzhang ~]$ telnet 127.0.0.1 6379


Redis操作(部分)

select 0 切换到第1个数据库 (默认16个库)

auth [密码]

set [key] [value] 放入键值

get [key] 获取值

exists [key] 键是否存在

keys* 所有key

flushdb 刷新当前库 

flushall 刷新所有库  

刷新会删除所有数据

help 查看命令  help set  查看数据类型  help@string

quit 退出


Redis 安全

为redis客户端设置外部连接密码

vim /application/redis/conf/redis.conf  修改配置文件

requirepass tanzhang   添加访问密码

重启

[root@bzhang ~]# redis-cli shutdown  

[root@bzhang ~]# redis-server/application/redis/conf/redis.conf &

进入redis

[root@bzhang ~]# redis-cli

127.0.0.1:6379> set a 001

(error) NOAUTH Authentication required.

127.0.0.1:6379> AUTH tanzhang

OK

127.0.0.1:6379> set aa 001

OK

[root@bzhang ~]#redis-cli -a tanzhang  可以直接用密码登录


对命令进行改名或禁用(一般不会改)

vi /application/redis/conf/redis.conf

rename-command get ""  禁用get

rename-command set bo   将set命令改为bo

redis-cli -a tanzhang shutdown 关闭

redis-server/application/redis/conf/redis.conf &

 

127.0.0.1:6379> auth tanzhang

OK

127.0.0.1:6379> set aa 12

(error) ERR unknown command 'set'

127.0.0.1:6379> bo aa 12

OK

127.0.0.1:6379> get aa

(error) ERR unknown command 'get'

127.0.0.1:6379>


Redis多实例

创建三个数据存放目录

mkdir /data/redis/6379/data –p     

mkdir /data/redis/6380/data –p

mkdir /data/redis/6381/data –p

复制配置文件到对应的端口命名的文件夹下

cp /application/redis/conf/redis.conf/data/redis/6379/

cp /application/redis/conf/redis.conf/data/redis/6380/

cp /application/redis/conf/redis.conf/data/redis/6381/

将配置文件内的端口改成相应的端口,数据存放目录改成相应的目录。

例如  port 6380   dir /data/redis/6380/data/

redis-server /data/redis/6380/redis.conf &   启动时修改下配置文件即可。

redis-cli -p 6380 连接时指定下端口


Redis主从同步

以master为写操作,slave为读操作。master上的写操作都会同步到slave上。

配置

用6379实例作为master 用6380实例作为slave

配置6380配置文件

# slaveof

slaveof 192.168.26.132 6379

 

# masterauth

masterauth tanzhang

重启

redis-cli -p 6380 -a tanzhang shutdown

 

登录6380监控

[root@bzhang ~]# redis-cli -p 6380 -atanzhang

127.0.0.1:6380> monitor

OK

1469858027.309008 [0 192.168.26.132:6379]"PING"

1469858120.771769 [0 192.168.26.132:6379]"SELECT" "0"

1469858120.771777 [0 192.168.26.132:6379]"set" "test" "test123"

可以监控到在6379上操作的命令


Redis生产环境优化

1、根据业务需要选择合适的数据类型,并为不同的应用场景设置相应的紧凑存储参数。

2、当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量。

3、如果需要持久化,根据是否可以容忍重启丢失部分数据在快照方式与语句追加方式之间选择其一,不要使用虚拟内存以及diskstore方式。

4、不要让你的redis所在机器物理内存使用超过实际内存总理的3/5。

5、redis.conf中maxmemory选项,该选项是告诉redis当使用了多少物理内存后就开始拒绝后续的写入请求,该参数能很好的保护redis不会因为使用了过多的物理内存后而导致swap,最终严重影响性能甚至崩溃。redis.conf文件中vm-enabled 为no

6、大量数据尽量按业务使用多个redis实例把数据分散开。


异机主从只要修改配置文件即可。































你可能感兴趣的:(服务器架构,linux,redis)