redis特色c++
1.1 支持內存的緩存,至關於memcachedredis
1.2 數據類型豐富vim
1.3 支持集羣分佈式緩存
1.4 持久化,至關於memcachedbbash
1.5 redis支持10W每秒的讀寫頻率服務器
memcache的特色併發
2.1 部署簡單支持高併發app
2.2 僅爲內存緩存,重啓服務,緩存丟失分佈式
3. redis持久化ide
3.1.RDB
是指在指定的時間內生成數據集的快照
每隔一段時間redis會把內存中的數據便利一下,生成一個dump.rdb的文件,存放在硬盤中,這個叫作快照,redis父進程會開闢一個子進程,這個子進程會負責rdb文件的保存的工做,父進程無需消耗磁盤的IO。可是若是服務器宕機的話,由於是按照必定的時間作的快照,因此會丟失一部分數據
在conf下生成 dump.rdb 文件
3.2.AOF
持久化記錄redis服務器的操做命令,redis是默認1s執行一次fsync的命令,講數據追加到硬盤,可是這種對磁盤的I/O消耗特別的大,可是數據一致性比較完整。
在conf下生成 appendonly.aof 文件
4.redis的安裝部署
4.1 下載安裝包
yum -y install gcc gcc++ tcl cd /root wget tar xf redis-3.0.6.tar.gz
4.2編譯安裝
mkdir -p /opt/redis-3.0.6 cd /root/redis-3.0.6 make make PREFIX=/opt/redis-3.0.6 install ln -s /opt/redis-3.0.6 /opt/redis
4.3 拷貝配置文件
mkdir -p /opt/redis/conf cp /root/redis-3.2.2 /opt/redis/conf/6379.conf vim /opt/redis/conf/6379.conf daemonize yes #修改成yes 守護進程啓動 pidfile /var/run/redis_6379.pid #這個要和接下來的啓動腳本一致
4.4 修改啓動腳本默認是沒有的
cd /root/redis-3.2.2/utils cp redis_init_script /etc/init.d/redis6379 vi /etc/init.d/redis6379 # chkconfig: 2345 18 91 #加上 EXEC=/opt/redis/bin/redis-server CLIEXEC=/opt/redis/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/opt/redis/conf/${REDISPORT}.conf" #注意腳本中定義的變量 chmod +x /etc/init.d/redis6379 chkconfig --add redis6379
4.5 增長環境變量
echo "PATH=/opt/redis/bin/" >>/etc/profile source /etc/profile
4.6 啓動redis
/etc/init.d/redis6379 start [root@zk03 utils]# ps -ef |grep redis root 5715 1 0 20:32 ? 00:00:00 /opt/redis/bin/redis-server 127.0.0.1:6379 root 5743 5654 0 20:43 pts/2 00:00:00 grep --color=auto redis [root@zk03 utils]# [root@zk03 utils]# /etc/init.d/redis6379 stop Stopping ... Redis stopped [root@zk03 utils]# ps -ef |grep redis root 5753 5654 0 20:46 pts/2 00:00:00 grep --color=auto redis [root@zk03 utils]# [root@zk03 utils]# redis-cli 127.0.0.1:6379>
4.7 開啓認證bind本機的IP:目的是遠程鏈接redis經過iP
[root@zk03 conf]# vi 6379.conf bind 192.168.56.17 requirepass 123456 從新啓動發現啓動腳本報錯
4.8 修改啓動腳本
stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." kill -9 `cat /var/run/redis_${REDISPORT}.pid` rm -f /var/run/redis_${REDISPORT}.pid #$CLIEXEC -p $REDISPORT shutdown #while [ -x /proc/${PID} ] #do # echo "Waiting for Redis to shutdown ..." # sleep 1 #done echo "Redis stopped" fi ;; 中止的腳本修改一下
4.9 在另一臺服務器遠程測試
[root@zk01 ~]# redis-cli -h 192.168.56.17 192.168.56.17:6379> set age 18 (error) NOAUTH Authentication required. 192.168.56.17:6379> auth 123456 OK 192.168.56.17:6379> set age 18 OK 192.168.56.17:6379>