1.什麼是redis?有什麼特性?
Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。
特性:
Redis 與其他 key - value 緩存產品(memcached)有以下三個特點:
①、Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啓的時候可以再次加載進行使用。
②、Redis不僅僅支持簡單的key-value類型的數據,同時還提供String(字符串), list(列表),set(集合),zset(sorted set:有序集合),hash(哈希)等數據結構的存儲。
③、Redis支持數據的備份,即master-slave模式的數據備份。
Redis 優勢
①、性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
②、豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作。
③、原子 – Redis的所有操作都是原子性的,同時Redis還支持對幾個操作合併後的原子性執行。
④、豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。
2. Redis在linux環境安裝配置
1.Redis安裝
將redis安裝到此目錄:/usr/local/redis
安裝包下載到此目錄:/usr/local/src
具體的命令:
$ mkdir /usr/local/redis
$ cd /usr/local/src
$ wget http://download.redis.io/releases/redis-4.0.8.tar.gz
$ tar xzf redis-4.0.8.tar.gz
$ ln -s redis-4.0.8 redis #建立一個鏈接
$ cd redis
$ make PREFIX=/usr/local/redis install #安裝到指定目錄中
如果上面最後一行make install 出錯,可能系統中還未安裝gcc,那麼可以通過yum安裝:
$ yum install gcc
執行完後,繼續執行上面的最後一行make命令。
在安裝redis成功後,你將可以在/usr/local/redis看到一個bin的目錄,裏面包括了以下文件:
redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server
啓動redis:
$ cd /usr/local/redis/bin/
$ #redis-server /usr/local/src/redis-4.0.8/redis.conf
$ ./redis-server
#[root@localhost bin]# redis-server /usr/local/src/redis-4.0.8/redis.conf
[root@localhost bin]# ./redis-server
4705:C 22 Oct 21:53:28.179 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4705:C 22 Oct 21:53:28.179 # Redis version=4.0.8, bits=64, commit=00000000, modified=0, pid=4705, just started
4705:C 22 Oct 21:53:28.179 # Configuration loaded
4705:M 22 Oct 21:53:28.180 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 4.0.8 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 4705
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
4705:M 22 Oct 21:53:28.181 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
4705:M 22 Oct 21:53:28.181 # Server initialized
好,啓動成功
2.將redis做成一個服務
可以在系統啓動的時候自動啓動redis,類似於windows的註冊表,系統啓動自動執行一些腳本
如果按照上面的redis安裝步驟的話:其redis服務腳本應該在這裏:/usr/local/src/redis/utils/redis_init_script
這時需要將其複製到/etc/rc.d/init.d的目錄下,將redis_init_script複製到/etc/rc.d/init.d/,同時易名爲redis,看下面的命令:
$ cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis
添加註冊服務:
$ chkconfig --add redis
然後就會出現這樣的錯:
$ service redis does not support chkconfig
那是因爲上面複製的redis腳本腳本有問題,需要修改,執行xia'下面命令進入腳本
$ vim /etc/rc.d/init.d/redis
下面是修改後的腳本
#!/bin/sh
#chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF &
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
下圖是與原配置相比,不同的地方
將redis配置文件拷貝到/etc/redis/${REDISPORT}.conf
$ mkdir /etc/redis
$ cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf
這樣,redis服務腳本指定的CONF就存在了。默認情況下,Redis未啓用認證,可以通過開啓6379.conf的requirepass 指定一個驗證密碼。(這裏以後再說)
以上操作完成後,即可註冊yedis服務:
$ chkconfig --add redis
啓動redis服務:
$ service redis start
將Redis的命令所在目錄添加到系統參數PATH中
修改profile文件:
vi /etc/profile
在最後行追加:
export PATH="$PATH:/usr/local/redis/bin"
然後馬上應用這個文件:
. /etc/profile
這樣就可以直接調用redis-cli的命令了,如下所示:
$ redis-cli
redis 127.0.0.1:6379> auth superman
OK
redis 127.0.0.1:6379> ping
PONG
redis 127.0.0.1:6379>
到這裏,redis 就成功安裝了,快去體驗一把。