day24——NoSQL簡介、redis服務搭建、redis連接池、redis管道
一、Redis 安裝
yum install -y epel-release
yum install -y gcc jemalloc-devel wget
cd /usr/local/src
wget https://codeload.github.com/antirez/redis/tar.gz/2.8.21 -O redis-2.8.21.tar.gz
tar xf redis-2.8.21.tar.gz
cd redis-2.8.21
make
make PREFIX=/usr/local/redis install
mkdir /usr/local/redis/etc
wget http://www.apelearn.com/study_v2/.redis_conf -O /usr/local/redis/etc/redis.conf 2>/dev/null # 下載配置文件
wget http://www.apelearn.com/study_v2/.redis_init -O /etc/init.d/redis 2>/dev/null # 下載啟動腳本
useradd -s /sbin/nologin redis
mkdir /usr/local/redis/var
chmod 777 /usr/local/redis/var
chmod 755 /etc/init.d/redis
chkconfig --add redis
chkconfig redis on
/etc/init.d/redis start
[root@localhost ~]# /usr/local/redis/bin/redis-cli # 連接Redis 127.0.0.1:6379>
二、Redis 基本操作
安裝 redis 模塊:
cd /usr/local/src wget --no-check-certificate https://pypi.python.org/packages/source/r/redis/redis-2.8.0.tar.gz tar xf redis-2.8.0.tar.gz mv redis-2.8.0 python-redis-2.8.0 cd python-redis-2.8.0/ python setup.py install
Python 連接並操作 redis :
In [1]: import redis In [2]: r = redis.Redis(host=‘127.0.0.1‘, port=6379) # redis.Redis() 用於連接 redis In [3]: r.set(‘name‘, ‘Tom‘) # set() 用於設置key值 Out[3]: True In [4]: print r.get(‘name‘) # get() 用於獲取key值 Tom
其他操作參考:
[root@localhost ~]#/usr/local/redis/bin/redis-cli // 連接Redis 127.0.0.1:6379> keys * // keys 用於查看所有key,也可以模糊匹配,如 keys my* 127.0.0.1:6379> exists name // exists 用於判斷是否有某個key,有返回1,沒有返回0 127.0.0.1:6379> del name // del 用於刪除指定的key,成功返回1,失敗返回0 127.0.0.1:6379> expire name 100 // expire 用於設置指定的key多長時間後過期,單位為秒 127.0.0.1:6379> persist name // persist 用於取消指定key的過期時間 127.0.0.1:6379> ttl name // ttl 用於查看指定的key還有多長時間過期,返回-2表示沒有該key,返回-1表示沒有設置過期時間,其他表示還有多長時間過期 127.0.0.1:6379> select 0 // select 用於選擇哪個庫 127.0.0.1:6379> move name 2 // move 用於把指定的key移到哪個庫下 127.0.0.1:6379> randomkey // randomkey 用於隨機返回一個key 127.0.0.1:6379> rename k1 k2 // rename 用於重命名key 127.0.0.1:6379> type name // type 用於查看指定key的類型 127.0.0.1:6379> dbsize // dbsize 用於返回當前數據庫中key的數目 127.0.0.1:6379> info // info 用於返回redis數據庫的狀態信息 127.0.0.1:6379> flushdb // flushdb 用於清空當前數據庫中的所有key 127.0.0.1:6379> flushall // flushall 用於清空所有數據庫中的所有key
三、Redis 連接池
1、什麽是連接池
當應用程序對數據庫進行增刪改查等操作時,需要先連接數據庫,但是如果應用程序需要頻繁地連接數據庫進行增刪查改操作,那就需要不斷地創建連接,這是很耗時且耗資源的操作,也容易對數據庫造成安全隱患。所以,當應用程序啟動時先建立足夠的數據庫連接,並將這些連接組成一個連接池,當應用程序需要連接數據庫進行增刪查改操作時,再使用連接池中的連接,這樣可以保證較快的數據庫讀寫速度,還更加安全可靠。
數據庫連接池的運行機制如下:
(1) 程序初始化時創建連接池
(2) 使用時向連接池申請可用連接
(3) 使用完畢,將連接返還給連接池
(4) 程序退出時,斷開所有連接,並釋放資源
2、Python 使用 redis 連接池
In [5]: import redis In [6]: pool = redis.ConnectionPool(host=‘127.0.0.1‘, port=6379) # redis.ConnectionPool() 用於創建一個連接池 In [7]: r = redis.Redis(connection_pool=pool) # 通過 redis.Redis() 連接到連接池 In [8]: r.set(‘name‘, ‘Tom‘) # 執行 redis 操作 Out[8]: True In [9]: r.get(‘name‘) Out[9]: ‘Tom‘
day24——NoSQL簡介、redis服務搭建、redis連接池、redis管道