52
52
import io .lettuce .core .tracing .TraceContext ;
53
53
import io .lettuce .core .tracing .TraceContextProvider ;
54
54
import io .lettuce .core .tracing .Tracing ;
55
+ import io .lettuce .core .vector .RawVector ;
56
+ import io .lettuce .core .vector .VectorMetadata ;
55
57
import io .netty .util .concurrent .EventExecutorGroup ;
56
58
import io .netty .util .concurrent .ImmediateEventExecutor ;
57
59
import reactor .core .publisher .Flux ;
84
86
* @author Tihomir Mateev
85
87
* @since 4.0
86
88
*/
87
- public abstract class AbstractRedisReactiveCommands <K , V >
88
- implements RedisAclReactiveCommands <K , V >, RedisHashReactiveCommands <K , V >, RedisKeyReactiveCommands <K , V >,
89
- RedisStringReactiveCommands <K , V >, RedisListReactiveCommands <K , V >, RedisSetReactiveCommands <K , V >,
90
- RedisSortedSetReactiveCommands <K , V >, RedisScriptingReactiveCommands <K , V >, RedisServerReactiveCommands <K , V >,
91
- RedisHLLReactiveCommands <K , V >, BaseRedisReactiveCommands <K , V >, RedisTransactionalReactiveCommands <K , V >,
92
- RedisGeoReactiveCommands <K , V >, RedisClusterReactiveCommands <K , V >, RedisJsonReactiveCommands <K , V > {
89
+ public abstract class AbstractRedisReactiveCommands <K , V > implements RedisAclReactiveCommands < K , V >,
90
+ RedisHashReactiveCommands <K , V >, RedisKeyReactiveCommands <K , V >, RedisStringReactiveCommands <K , V >,
91
+ RedisListReactiveCommands <K , V >, RedisSetReactiveCommands <K , V >, RedisSortedSetReactiveCommands <K , V >,
92
+ RedisScriptingReactiveCommands <K , V >, RedisServerReactiveCommands <K , V >, RedisHLLReactiveCommands <K , V >,
93
+ BaseRedisReactiveCommands <K , V >, RedisTransactionalReactiveCommands <K , V >, RedisGeoReactiveCommands <K , V >,
94
+ RedisClusterReactiveCommands <K , V >, RedisJsonReactiveCommands <K , V >, RedisVectorSetReactiveCommands <K , V > {
93
95
94
96
private final StatefulConnection <K , V > connection ;
95
97
96
98
private final RedisCommandBuilder <K , V > commandBuilder ;
97
99
98
100
private final RedisJsonCommandBuilder <K , V > jsonCommandBuilder ;
99
101
102
+ private final RedisVectorSetCommandBuilder <K , V > vectorSetCommandBuilder ;
103
+
100
104
private final Supplier <JsonParser > parser ;
101
105
102
106
private final ClientResources clientResources ;
@@ -118,6 +122,7 @@ public AbstractRedisReactiveCommands(StatefulConnection<K, V> connection, RedisC
118
122
this .parser = parser ;
119
123
this .commandBuilder = new RedisCommandBuilder <>(codec );
120
124
this .jsonCommandBuilder = new RedisJsonCommandBuilder <>(codec , parser );
125
+ this .vectorSetCommandBuilder = new RedisVectorSetCommandBuilder <>(codec , parser );
121
126
this .clientResources = connection .getResources ();
122
127
this .tracingEnabled = clientResources .tracing ().isEnabled ();
123
128
}
@@ -1752,6 +1757,141 @@ public Flux<JsonType> jsonType(K key) {
1752
1757
return createDissolvingFlux (() -> jsonCommandBuilder .jsonType (key , JsonPath .ROOT_PATH ));
1753
1758
}
1754
1759
1760
+ @ Override
1761
+ public Mono <Boolean > vadd (K key , V element , Double ... vectors ) {
1762
+ return createMono (() -> vectorSetCommandBuilder .vadd (key , element , null , vectors ));
1763
+ }
1764
+
1765
+ @ Override
1766
+ public Mono <Boolean > vadd (K key , int dimensionality , V element , Double ... vectors ) {
1767
+ return createMono (() -> vectorSetCommandBuilder .vadd (key , dimensionality , element , null , vectors ));
1768
+ }
1769
+
1770
+ @ Override
1771
+ public Mono <Boolean > vadd (K key , V element , VAddArgs args , Double ... vectors ) {
1772
+ return createMono (() -> vectorSetCommandBuilder .vadd (key , element , args , vectors ));
1773
+ }
1774
+
1775
+ @ Override
1776
+ public Mono <Boolean > vadd (K key , int dimensionality , V element , VAddArgs args , Double ... vectors ) {
1777
+ return createMono (() -> vectorSetCommandBuilder .vadd (key , dimensionality , element , args , vectors ));
1778
+ }
1779
+
1780
+ @ Override
1781
+ public Mono <Long > vcard (K key ) {
1782
+ return createMono (() -> vectorSetCommandBuilder .vcard (key ));
1783
+ }
1784
+
1785
+ @ Override
1786
+ public Mono <Boolean > vClearAttributes (K key , V element ) {
1787
+ return createMono (() -> vectorSetCommandBuilder .vsetattr (key , element , "" ));
1788
+ }
1789
+
1790
+ @ Override
1791
+ public Mono <Long > vdim (K key ) {
1792
+ return createMono (() -> vectorSetCommandBuilder .vdim (key ));
1793
+ }
1794
+
1795
+ @ Override
1796
+ public Flux <Double > vemb (K key , V element ) {
1797
+ return createDissolvingFlux (() -> vectorSetCommandBuilder .vemb (key , element ));
1798
+ }
1799
+
1800
+ @ Override
1801
+ public Mono <RawVector > vembRaw (K key , V element ) {
1802
+ return createMono (() -> vectorSetCommandBuilder .vembRaw (key , element ));
1803
+ }
1804
+
1805
+ @ Override
1806
+ public Mono <String > vgetattr (K key , V element ) {
1807
+ return createMono (() -> vectorSetCommandBuilder .vgetattr (key , element ));
1808
+ }
1809
+
1810
+ @ Override
1811
+ public Flux <JsonValue > vgetattrAsJsonValue (K key , V element ) {
1812
+ return createDissolvingFlux (() -> vectorSetCommandBuilder .vgetattrAsJsonValue (key , element ));
1813
+ }
1814
+
1815
+ @ Override
1816
+ public Mono <VectorMetadata > vinfo (K key ) {
1817
+ return createMono (() -> vectorSetCommandBuilder .vinfo (key ));
1818
+ }
1819
+
1820
+ @ Override
1821
+ public Flux <V > vlinks (K key , V element ) {
1822
+ return createDissolvingFlux (() -> vectorSetCommandBuilder .vlinks (key , element ));
1823
+ }
1824
+
1825
+ @ Override
1826
+ public Mono <Map <V , Double >> vlinksWithScores (K key , V element ) {
1827
+ return createMono (() -> vectorSetCommandBuilder .vlinksWithScores (key , element ));
1828
+ }
1829
+
1830
+ @ Override
1831
+ public Mono <V > vrandmember (K key ) {
1832
+ return createMono (() -> vectorSetCommandBuilder .vrandmember (key ));
1833
+ }
1834
+
1835
+ @ Override
1836
+ public Flux <V > vrandmember (K key , int count ) {
1837
+ return createDissolvingFlux (() -> vectorSetCommandBuilder .vrandmember (key , count ));
1838
+ }
1839
+
1840
+ @ Override
1841
+ public Mono <Boolean > vrem (K key , V element ) {
1842
+ return createMono (() -> vectorSetCommandBuilder .vrem (key , element ));
1843
+ }
1844
+
1845
+ @ Override
1846
+ public Mono <Boolean > vsetattr (K key , V element , String json ) {
1847
+ return createMono (() -> vectorSetCommandBuilder .vsetattr (key , element , json ));
1848
+ }
1849
+
1850
+ @ Override
1851
+ public Mono <Boolean > vsetattr (K key , V element , JsonValue json ) {
1852
+ return createMono (() -> vectorSetCommandBuilder .vsetattr (key , element , json ));
1853
+ }
1854
+
1855
+ @ Override
1856
+ public Flux <V > vsim (K key , Double ... vectors ) {
1857
+ return createDissolvingFlux (() -> vectorSetCommandBuilder .vsim (key , null , vectors ));
1858
+ }
1859
+
1860
+ @ Override
1861
+ public Flux <V > vsim (K key , V element ) {
1862
+ return createDissolvingFlux (() -> vectorSetCommandBuilder .vsim (key , null , element ));
1863
+ }
1864
+
1865
+ @ Override
1866
+ public Flux <V > vsim (K key , VSimArgs args , Double ... vectors ) {
1867
+ return createDissolvingFlux (() -> vectorSetCommandBuilder .vsim (key , args , vectors ));
1868
+ }
1869
+
1870
+ @ Override
1871
+ public Flux <V > vsim (K key , VSimArgs args , V element ) {
1872
+ return createDissolvingFlux (() -> vectorSetCommandBuilder .vsim (key , args , element ));
1873
+ }
1874
+
1875
+ @ Override
1876
+ public Mono <Map <V , Double >> vsimWithScore (K key , Double ... vectors ) {
1877
+ return createMono (() -> vectorSetCommandBuilder .vsimWithScore (key , null , vectors ));
1878
+ }
1879
+
1880
+ @ Override
1881
+ public Mono <Map <V , Double >> vsimWithScore (K key , V element ) {
1882
+ return createMono (() -> vectorSetCommandBuilder .vsimWithScore (key , null , element ));
1883
+ }
1884
+
1885
+ @ Override
1886
+ public Mono <Map <V , Double >> vsimWithScore (K key , VSimArgs args , Double ... vectors ) {
1887
+ return createMono (() -> vectorSetCommandBuilder .vsimWithScore (key , args , vectors ));
1888
+ }
1889
+
1890
+ @ Override
1891
+ public Mono <Map <V , Double >> vsimWithScore (K key , VSimArgs args , V element ) {
1892
+ return createMono (() -> vectorSetCommandBuilder .vsimWithScore (key , args , element ));
1893
+ }
1894
+
1755
1895
@ Override
1756
1896
public Flux <K > keys (K pattern ) {
1757
1897
return createDissolvingFlux (() -> commandBuilder .keys (pattern ));
0 commit comments