redis是一個key-value存儲系統。和Memcached相似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操做,並且這些操做都是原子性的。在此基礎上,redis支持各類不一樣方式的排序。與memcached同樣,爲了保證效率,數據都是緩存在內存中。區別的是redis會週期性的把更新的數據寫入磁盤或者把修改操做寫入追加的記錄文件,而且在此基礎上實現了master-slave(主從)同步。python
(1)添加mysql
將字符串值value關聯到key。若是key已經存在值,set命令會覆蓋以前的值。默認的過時時間是永久。redis
set key value
(2)設置鍵值及過時時間,以秒爲單位sql
setex key seconds value
(3)設置多個鍵值數據庫
mset key1 value1 key2 value2 ...
(4)追加值django
append key value
(5)獲取vim
get key
(6)獲取多個鍵獲取多個值緩存
mget key1 key2 ...
(7)刪除服務器
del username
(1)查看全部鍵session
keys *
(2)查看名稱中包含a的鍵
keys 'a*'
(3)判斷鍵是否存在,若是存在返回1,不存在返回0
exists key1
(4)刪除鍵及對應的值
del key1 key2 .
(5)設置過時時間,以秒爲單位
expire key seconds
(6)查看有效時間,以秒爲單位
ttl key
(1)設置單個屬性
hset key field value
(2)設置多個屬性
hmset key field1 value1 field2 value2 ..
(3)獲取指定鍵全部的屬性
hkeys key
(4)獲取⼀個屬性的值
hget key field
(5)獲取多個屬性的值
hmget key field1 field2
(6)獲取全部屬性的值
hvals key
(7)刪除整個hash鍵及值,使⽤del命令
hdel key field1 field2 ...
(1)在左側插⼊數據
lpush key value1 value2 ...
(2)在右側插⼊數據
rpush key value1 value2 ...
(3)在指定元素的前或後插⼊新元素
linsert key before或after 現有元素 新元素
(4)返回列表⾥指定範圍內的元素
lrange key start stop
(5)設置指定索引位置的元素值
lset key index value
(6)刪除指定元素
lrem key count value
說明:對於集合沒有修改操做
(1)添加元素
sadd key member1 member2 ...
(2)獲取全部的元素
smembers key
(3)刪除指定元素
srem key
(1)添加
zadd key score1 member1 score2 member2 ...
(2)獲取
索引能夠是負數,表示從尾部開始計數,如-1表示最後⼀個元素
zrange key start stop
(3)返回score值在min和max之間的成員
zrangebyscore key min max
(4)返回成員member的score值
zscore key member
(5)刪除指定元素
zrem key member1 member2 ...
(6)刪除權重在指定範圍的元素
zremrangebyscore key min max
redis事務能夠一次執行多個命令,事務具備如下特徵:
(1)開啓一個事務
multi
之後執行的全部命令,都將在這個事務中執行。
(2)執行事務
exec
會將在multi和exec中的操做一併提交
(3)取消事務
discard
會將multi後的全部命令取消
(4)監視一個或者多個key
watch key .......
監視一個或多個key,若是在事務執行以前這個key被其它命令所改動,那麼事務將被打斷。
(5)取消全部key的監視
unwatch
(1)設置密碼
vim /etc/redis.conf
打開配置文件,而後按「/」搜索「requirepass」,再按‘n’找到‘requirepass xxxxx’,取消註釋,在後面加上要設置的密碼 requirepass 123456.
(2)本地鏈接
redis-cli -p 6379 -h 127.0.0.1 -a 123456
能夠在鏈接的時候,經過‘-a’參數指定密碼進行鏈接,也能夠先登陸上去,而後再使用‘auth password’命令進行受權。
(3)其它機器鏈接redis
若是想讓其它機器鏈接本機的redis服務器,那麼應該在‘redis.conf’配置文件中,指定「bind 本機的ip地址」,這樣別的機器就能鏈接成功了。
vim /etc/redis.conf
按‘/’搜索‘bind’,後面指定本身機器的ip
(1)安裝
pip install redis
(2)鏈接
from redis import Redis cache = Redis(host="139.199.131.146",port=6379,password=123456)
(3)字符串操做
cache.set('uers','derek') cache.get('users') cache.delete('users')
(4)列表操做
cache.lpush('users','tom') print(cache.lrange('users',0,-1))
(5)集合的操做
cache.sadd('group','CEO') print(cache.smembers('group'))
(6)哈希的操做
cache.hset('person','name','derek') print('cache.hgetall('person')')
(7)事務的操做
pip = cache.pipeline() pip.set('username','derek') pip.set('password','123456') pip.execute()
pip install django-redis-sessions==0.5.6
SESSION_ENGINE = 'redis_sessions.session' SESSION_REDIS_HOST = 'localhost' SESSION_REDIS_PORT = 6379 SESSION_REDIS_DB = 2 SESSION_REDIS_PASSWORD = '' SESSION_REDIS_PREFIX = 'session'