基本知識
1、Redis的數據類型:
字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)
2、Redis和memcache相比的獨特之處:
(1)redis可以用來做存儲(storge)、而memcache是來做緩存(cache)。這個特點主要是因為其有“持久化”功能
(2)存儲的數據有“結構”,對於memcache來說,存儲的數據,只有一種類型——“字符串”,而redis則可以存儲字符串、鏈表、集合、有序集合、哈序結構
3、持久化的兩種方式:
Redis將數據存儲於內存中,或被配置為使用虛擬內存。
實現數據持久化的兩種方式:(1)使用截圖的方式,將內存中的數據不斷寫入磁盤(性能高,但可能會引起一定程度的數據丟失)
(2)使用類似mysql的方式,記錄每次更新的日志
4、Redis的主從同步:對提高讀取性能非常有益
5、Redis服務端的默認端口是6379
安裝redis 前先檢查gcc環境:
$ gcc -v 使用內建 specs。 COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper 目標:x86_64-redhat-linux 配置為:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux 線程模型:posix gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
如果沒有gcc環境 ,可用yum install gcc 來安裝:
[root@localhost ~]# yum install gcc Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package gcc.i386 0:4.1.2-51.el5 set to be updated --> Processing Dependency: cpp = 4.1.2-51.el5 for package: gcc --> Processing Dependency: libgomp >= 4.1.2-51.el5 for package: gcc --> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc --> Processing Dependency: libgcc >= 4.1.2-51.el5 for package: gcc --> Running transaction check ---> Package cpp.i386 0:4.1.2-51.el5 set to be updated ---> Package glibc-devel.i386 0:2.5-65 set to be updated --> Processing Dependency: glibc-headers = 2.5-65 for package: glibc-devel --> Processing Dependency: glibc = 2.5-65 for package: glibc-devel --> Processing Dependency: glibc-headers for package: glibc-devel ---> Package libgcc.i386 0:4.1.2-51.el5 set to be updated ---> Package libgomp.i386 0:4.4.4-13.el5 set to be updated --> Running transaction check --> Processing Dependency: glibc = 2.5-49 for package: nscd ---> Package glibc.i686 0:2.5-65 set to be updated --> Processing Dependency: glibc-common = 2.5-65 for package: glibc ---> Package glibc-headers.i386 0:2.5-65 set to be updated --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers --> Processing Dependency: kernel-headers for package: glibc-headers --> Running transaction check ---> Package glibc-common.i386 0:2.5-65 set to be updated ---> Package kernel-headers.i386 0:2.6.18-274.el5 set to be updated ---> Package nscd.i386 0:2.5-65 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: gcc i386 4.1.2-51.el5 base 5.2 M Installing for dependencies: glibc-devel i386 2.5-65 base 2.0 M glibc-headers i386 2.5-65 base 604 k kernel-headers i386 2.6.18-274.el5 base 1.2 M libgomp i386 4.4.4-13.el5 base 72 k Updating for dependencies: cpp i386 4.1.2-51.el5 base 2.7 M glibc i686 2.5-65 base 5.3 M glibc-common i386 2.5-65 base 16 M libgcc i386 4.1.2-51.el5 base 96 k nscd i386 2.5-65 base 169 k Transaction Summary ================================================================================ Install 5 Package(s) Upgrade 5 Package(s) Total download size: 34 M Is this ok [y/N]: y Downloading Packages:
接下來我們來安裝Redis
1、先到Redis官網(redis.io)下載redis安裝包
2、將其下載到我的/lamp目錄下
3、解壓並進入其目錄
4、編譯源程序
make
cd src
make install PREFIX=/usr/local/redis
5、將配置文件移動到redis目錄
6、啟動redis服務
7、默認情況,Redis不是在后台運行,我們需要把redis放在后台運行
vim /usr/local/redis/etc/redis.conf
將daemonize的值改為yes
8、客戶端連接
/usr/local/redis/bin/redis-cli
9、停止redis實例
/usr/local/redis/bin/redis-cli shutdown
或者
pkill redis-server
10、讓redis開機自啟
vim /etc/rc.local
加入
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf
11、接下來我們看看/usr/local/redis/bin目錄下的幾個文件時什么
redis-benchmark:redis性能測試工具
redis-check-aof:檢查aof日志的工具
redis-check-dump:檢查rdb日志的工具
redis-cli:連接用的客戶端
redis-server:redis服務進程
Redis的配置
daemonize:如需要在后台運行,把該項的值改為yes
pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
bind:指定redis只接收來自該IP的請求,如果不設置,那么將處理所有請求,在生產環節中最好設置該項
port:監聽端口,默認為6379
timeout:設置客戶端連接時的超時時間,單位為秒
loglevel:等級分為4級,debug,revbose,notice和warning。生產環境下一般開啟notice
logfile:配置log文件地址,默認使用標准輸出,即打印在命令行終端的端口上
database:設置數據庫的個數,默認使用的數據庫是0
save:設置redis進行數據庫鏡像的頻率
rdbcompression:在進行鏡像備份時,是否進行壓縮
dbfilename:鏡像備份文件的文件名
dir:數據庫鏡像備份的文件放置的路徑
slaveof:設置該數據庫為其他數據庫的從數據庫
masterauth:當主數據庫連接需要密碼驗證時,在這里設定
requirepass:設置客戶端連接后進行任何其他指定前需要使用的密碼
maxclients:限制同時連接的客戶端數量
maxmemory:設置redis能夠使用的最大內存
appendonly:開啟appendonly模式后,redis會把每一次所接收到的寫操作都追加到appendonly.aof文件中,當redis重新啟動時,會從該文件恢復出之前的狀態
appendfsync:設置appendonly.aof文件進行同步的頻率
vm_enabled:是否開啟虛擬內存支持
vm_swap_file:設置虛擬內存的交換文件的路徑
vm_max_momery:設置開啟虛擬內存后,redis將使用的最大物理內存的大小,默認為0
vm_page_size:設置虛擬內存頁的大小
vm_pages:設置交換文件的總的page數量
vm_max_thrrads:設置vm IO同時使用的線程數量
redis-cli -h 127.0.0.1 -p 6379 -a ilanniredis
這條命令是說要連接redis服務器,IP是127.0.0.1,端口是6379,密碼(requirepass)是ilanniredis。
keys *是查看redis所有的鍵值對。
set ilanni testredis添加一個鍵值ilanni,內容為testredis。
get ilanni查看ilanni這個鍵值的內容。
注: 當出現認證問題時候,輸入“auth ‘ilanniredis’”即可
127.0.0.1:6379> auth "ilanniredis"
OK
12、配置外網訪問
redis3.0 以上的版本默認啟用了安全機制較高的防護模式(protected-mode)。
redis2.x 只需要 bind 0.0.0.0,並開放防火牆端口即可外網訪問;而redis3.x版本需要在此基礎上禁用防護模式。
# redis-cli // 進入redis命令行模式
xxxx:6379> CONFIG SET protected-mode no // 禁用防護模式
vi redis.conf #bind 127.0.0.1 #protected-mode yes protected-mode no