1. 程式人生 > >day24——NoSQL簡介、redis服務搭建、redis連接池、redis管道

day24——NoSQL簡介、redis服務搭建、redis連接池、redis管道

span ear 文件 建立 技術 數據庫連接 立足 eight malloc

一、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管道