Простой Python. Современный стиль программирования (Любанович) - страница 146

>>>> import time

>>>> key = 'now you see it'

>>>> conn.set(key, 'but not for long')

>True

>>>> conn.expire(key, 5)

>True

>>>> conn.ttl(key)

>5

>>>> conn.get(key)

>b'but not for long'

>>>> time.sleep(6)

>>>> conn.get(key)

>>>>

Команда expireat() указывает, что действие ключа истекает в заданное время эпохи Unix. Это может оказаться полезным для того, чтобы кэш оставался свежим и чтобы ограничить сессии авторизации.

Прочие серверы NoSQL

Серверы NoSQL, перечисленные здесь, могут работать с данными, объем которых превышает объем доступной памяти, и многие из них требуют использования нескольких компьютеров. В табл. 8.6 показаны наиболее популярные серверы и их библиотеки Python.


Таблица 8.6. Базы данных NoSQL
СайтPython API
Cassandrapycassa
CouchDBcouchdb-python
HBasehappybase
Kyotokyotocabinet
MongoDBmongodb
Riakriak-python-client

Full-Text Databases

Наконец, существует особая категория баз данных для полнотекстового поиска. Они индексируют все, поэтому вы легко можете найти то стихотворение, в котором говорится о ветряных мельницах и гигантских головках сыра. Вы можете увидеть популярные примеры таких баз данных с открытым исходным кодом и их Python API в табл. 8.7.


Таблица 8.7. Полнотекстовые базы данных
СайтPython API
Lucenepylucene
SolrSolPython
ElasticSearchpyes
Sphinxsphinxapi
Xapianxappy
WhooshНаписан на Python, уже содержит API

Упражнения

1. Присвойте строку 'This is a test of the emergency text system' переменной test1 и запишите переменную test1 в файл с именем test.txt.

2. Откройте файл test.txt и считайте его содержимое в строку test2. Совпадают ли строки test1 и test2?

3. Сохраните следующие несколько строк в файл books.csv. Обратите внимание на то, что, если поля разделены запятыми, вам нужно заключить поле в кавычки, если оно содержит запятую:

>author,book

>J R R Tolkien,The Hobbit

>Lynne Truss,"Eats, Shoots & Leaves"

4. Используйте модуль csv и его метод DictReader, чтобы считать содержимое файла books.csv в переменную books. Выведите на экран значения переменной books. Обработал ли метод DictReader кавычки и запятые в заголовке второй книги?

5. Создайте CSV-файл books.csv и запишите его в следующие строки:

>title,author,year

>The Weirdstone of Brisingamen,Alan Garner,1960

>Perdido Street Station,China Miéville,2000

>Thud!Terry Pratchett,2005

>The Spellman Files,Lisa Lutz,2007

>Small Gods,Terry Pratchett,1992

6. Используйте модуль sqlite3, чтобы создать базу данных SQLite books.db и таблицу books, содержащую следующие поля: title (text), author (text) и year (integer).

7. Считайте данные из файла books.csv и добавьте их в таблицу book.