Vemcache는 메모리 내 벡터 데이터베이스입니다.
Vemcache는 벡터 데이터베이스와 동등한 Redis로 생각할 수 있습니다.
docker pull faizchishtie/vemcachedocker run --rm -it -p 7070:7070 faizchishtie/vemcache:latest docker-compose.yml 에 다음을 추가하십시오
version: "3.7"
services:
vemcache:
image: faizchishtie/vemcache:latest
ports:
- "7070:7070"
environment:
- VEMCACHE_HOST=0.0.0.0
- VEMCACHE_PORT=7070
- VEMCACHE_SECRET=mysecret
git clone https://github.com/faizchishtie/vemcache.git
cd vemcachemake buildmake run telnet 또는 nc 와 같은 TCP 클라이언트와 Vemcache에 연결하십시오.
telnet 사용하여 Vemcache에 연결하십시오
telnet 0.0.0.0 7070 또는 nc 사용하십시오
nc 0.0.0.0 7070연결되면 명령을 전송하여 Vemcache 서버와 상호 작용할 수 있습니다.
벡터를 데이터베이스에 삽입하려면 삽입 명령과 벡터 값을 사용하십시오.
insert 0.5 0.7 0.2지정된 키가있는 벡터를 삽입하려면 named_insert 명령과 키 및 벡터 값을 사용하십시오.
named_insert my_vector 0.5 0.7 0.2키를 사용하여 데이터베이스에서 벡터를 검색하려면 get 명령과 키를 사용하십시오.
get my_vector키를 사용하여 데이터베이스에서 벡터를 제거하려면 제거 명령과 키를 사용하십시오.
remove my_vector두 벡터 사이의 코사인 유사성을 계산하려면 Vcosine 명령을 사용한 다음 두 벡터의 키를 사용하십시오.
vcosine vector1 vector2벡터의 가장 가까운 이웃을 찾으려면 KNN 명령과 쿼리 벡터의 키와 k의 값을 사용하십시오.
knn query_vector 3두 벡터의 요소 별 추가를 수행하려면 VADD 명령과 두 벡터의 키를 사용하십시오.
vadd vector1 vector2두 벡터의 요소 별 뺄셈을 수행하려면 VSUB 명령을 사용한 다음 두 벡터의 키를 사용하십시오.
vsub vector1 vector2스칼라 값으로 벡터를 확장하려면 vscale 명령과 벡터의 키와 스칼라 값을 사용하십시오.
vscale vector1 2.0데이터베이스를 JSON 파일에 덤프하려면 덤프 명령을 사용한 다음 파일로가는 경로를 사용하십시오.
dump vemcache.json클라이언트를 종료하려면 Ctrl+C를 누르거나 종지를 입력하십시오 (Telnet을 사용하는 경우).
이는 벡터 작업을위한 Vemcache의 기본 사용을 마무리합니다. 보다 고급 작업 및 각 명령에 대한 자세한 설명은 Vemcache 문서를 참조하십시오.
# User connects to Vemcache using telnet
$ telnet 0.0.0.0 7070
Trying 0.0.0.0...
Connected to 0.0.0.0.
Escape character is ' ^] ' .
# User inserts a vector with the key "vector_a"
named_insert vector_a 0.5 0.7 0.2
OK
# User inserts another vector with the key "vector_b"
named_insert vector_b 0.1 0.9 0.4
OK
# User retrieves the vector with the key "vector_a"
get vector_a
[0.5, 0.7, 0.2]
# User calculates the cosine similarity between "vector_a" and "vector_b"
vcosine vector_a vector_b
Cosine Similarity: 0.8693
# User finds the nearest neighbor of "vector_a" (k=2)
knn vector_a 2
ID: vector_a, Vector: [0.5, 0.7, 0.2]
ID: vector_b, Vector: [0.1, 0.9, 0.4]
# User performs element-wise addition of "vector_a" and "vector_b"
vadd vector_a vector_b
[0.6, 1.6, 0.6]
# User scales "vector_a" by a factor of 2
vscale vector_a 2.0
[1.0, 1.4, 0.4]
# User removes "vector_a" from the database
remove vector_a
OK
# User attempts to retrieve "vector_a" again (expecting an error)
get vector_a
null
# Dump vemcache db
dump vemcache.json
Database dump successful: vemcache.json
# User exits the session
quit
Connection closed by foreign host.