Xhttpcache — это служба кэширования данных HTTP, которая также является NoSQL базой данных с поддержкой хранения данных в виде ключ-значение и протокола Redis, а также интерфейса REST HTTP.
Зависимости компилятора: Необходимо собрать и установить заранее
Сборка
```
wget --no-check-certificate https://github.com/0xsky/xhttpcache/archive/master.zip
unzip master.zip
cd xhttpcache-master
make
```
Доступ через HTTP-интерфейс
В конфигурационном файле xhttpcache настроены два порта HTTP-сервиса. Port Httpd_frontend_port — это открытый порт для чтения с запросами только на чтение, в то время как Httpd_backend_port — это порты данных серверной части, поддерживающие все запросы REST (get/post/put/delete). Доступ к данным серверной части можно настроить, используя пароль входа.
###Примеры команд Redis:
Ниже приведён пример, демонстрирующий все поддерживаемые команды Redis
```bash
[xsky@localhost xhttpcache]$ redis-cli -p 7379
127.0.0.1:7379> set test hello
OK
127.0.0.1:7379> get test
"hello"
127.0.0.1:7379> set test hello ex 1000
OK
127.0.0.1:7379> get test
"hello"
127.0.0.1:7379> ttl test
(integer) 988
127.0.0.1:7379> expire test 2000
(integer) 1
127.0.0.1:7379> ttl test
(integer) 1998
127.0.0.1:7379> get test
"hello"
127.0.0.1:7379>
```
###Добавление изображений в xhttpcache через команды Redis
```bash
redis-cli -p 7379 -x set getheadimg.jpg <getheadimg.jpg
```
###Импорт и экспорт больших объёмов данных
Экспортирование большого объёма файлов диска в xhttpcache осуществляется с помощью следующего скрипта, который перемещает файлы из указанной директории в xhttpcache.
```bash
#!/bin/bash
redis_cmd="redis-cli -p 7379 -x set "
function batch_convert() {
for file in `ls $1`
do
if [ -d $1"/"$file ]
then
batch_convert $1"/"$file
else
key=$1"/"$file
#echo 33 $redis_cmd ${key#*/} $1"/"$file
$redis_cmd ${key#*/} < $1"/"$file
fi
done
}
``````batch_convert $1
```
Данные в xhttpcache могут быть экспортированы на диск в виде файловой директории с помощью следующего скрипта shell,
```bash
#!/bin/sh
#
# Скрипт резервного копирования данных xHttpCache
# Автор: xSky
``````markdown
usage()
{
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "+ Инструменты shell для экспорта данных xHttpCache +"
echo "+ Автор: xSky +"
echo "+ Использование: +"
echo "+ $0 data_dir redis_host redis_port +"
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++"
}
# Проверка аргументов
if [ $# -ne 3 ]; then
usage
exit 0
fi
data_dir=$1
redis_host=$2
redis_port=$3
echo $data_dir $redis_host $redis_port
if [ ! -d $data_dir ]; then
#redis-cli -p 6579 scan a z | awk '{print "redis-cli -p 6579 get "$0 " >"$0}'|sh
cd $data_dir
redis-cli -h $redis_host -p $redis_port scan a z | while read line
do
echo $line
bdir=$(expr index $line "/")
file_dir=${line%/*}
file_name=$line
if [[ $bdir -gt 0 ]]; then
#echo 1 $bdir $file_dir $file_name
mkdir -p $file_dir
fi
redis-cli -h $redis_host -p $redis_port get $line > $line
done
cd -
else
echo "[ОШИБКА] папка $data_dir отсутствует"
exit 0
fi
```
### Характеристическое описание:
xhttpcache может возвращать соответствующий тип файла `Content-Type`, определяя тип URI, посещаемого через HTTP. Это делает его HTTP-интерфейс настоящим веб-сервером. При доступе через браузер данные будут отображаться непосредственно в виде страницы вместо обычного интерфейса данных.
```Например: для адреса с формой `/test.htm`. При возврате содержимого HTTP-заголовок возвращает `text/html` `Content-Type`, что позволяет отобразить соответствующие данные `test.htm` в виде HTML через браузер. Для ключа в форме `/test.jpg`, если значение должно быть данными JPG-изображения, нормальное отображение как картинки происходит при доступе через браузер к `/test.jpg`. Кроме того, фоновая поддержка обеспечивает просмотр и загрузку изображений.По вышеуказанным характеристикам можно легко загружать все статические файлы веб-сайта в кэш с полной памятью.
### Заключение
Благодарность за следующие библиотеки и проекты. Оценка не имеет значения.
* [libevent](http://libevent.org/)
* [libevhtp](https://github.com/ellzey/libevhtp)
* [rocksdb](http://rocksdb.org/)
* [ssdb](http://ssdb.io/)
### Об авторе
* [сайт xhttpcache](http://xhttpcache.0xsky.com/)
* группа QQ xhttpcache: 195957781
* [блог xSky](http://www.0xsky.com/)
* Электронная почта: guozhw@gmail.com
```
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )