- 03 Feb, 2020 10 commits
-
-
Marc Gravell authored
* first steps into async-enumerable * move to the old iterator * make it compile * add missing APIs * re-hide CursorEnumerable<T> - invent dummy enumerable APIs for now; implement KeysAsync; make pageOffset work for all; increase the default library page size, because 10 is *way* too small - noting that we still need to compare to 10 when building messages * missing awaits * fix range error in ValuePairInterleavedProcessorBase<T>; fix HSCAN tests * async streams is "8.0", not "preview" * update async enumerable API * eek, the special compiler trick for spans only apples to byte - presumably due to endianness; this was allocating *lots* * fix page size merge fail * lib updates * fix mock tests * fix async signature detection re IAsyncEnumerable * fix bug in interleaved pair processor * fix more scanning glitches * fix resume on scans * detect and warn on thread-theft * more logs in NoticesConnectFail
-
Tommy Hanks authored
* The casing in the error message probably changed. I checked the RediSearch source and found that it's been "Unsupported language" since at least August 28, 2018. * `FT.OPTIMIZE` has been deprecated. Index optimizations are now handled by the internal garbage collector in the background. https://oss.redislabs.com/redisearch/Commands.html#ftoptimize * Started work on porting the aggregation builder class and test from JRediSearch. * Ported in static support methods. * Added Load, Limit, and SortBy * Finished adding the sortby's * Group by and apply have been ported. * Added in the `Filter` method. * Added in `Cursor` builder method. Made the private `args` member naming more consistent the rest of the project by prefixing with an underscore. * Made this a privately settable property as this is basically what the Java version had. * Implemented `ArgsString` property here. This is from the Java `getArgsString` * Args list is now accessible just like the Java version. * Added in serialize redis args method... * Ported `TestAggregations` test from JRediSearch. Kept everything as close to the original as possible. * Marked these methods obsolete in favor of the ones that use the AggregationBuilder. * Introduced new overloads for the `Aggregate` method. Marked the obsolete unit test as obsolete. * For completeness I added in the commands that should be issued by the setup portion of this test. * Ported in the `TestApplyAndFilterAggregations` test. * Porting over the support for dealing with aggregate cursors. * Initial pass at implementing cursor delete. * Initial pass at implementing `CursorRead` and `CursorReadAsync` * Fixed issue with supplying the Redisearch command with sorting. Fixed some assertions... * Added support for return fields. * Fixed apparently typo. * Moved this test class to be more consistent with the JRedisearch library. * Cleaned up imports here. * Initial pass at porting the tag for `AlterIndex`. * Current progress porting the FT.ALTER command. * Added in a new type for capturing the FT.INFO result... * The test for AlterIndex (Add) is complete. * Altered test here to meet assertions from JRediSearch. * Ported support for the FT.MGET command. * Ported the Suggestion with Builder from JRediSearch. * Ported SuggestionOptions. * Further fleshed out the suggestion options using JRediSearch as a guide. * Ported over the expanded Suggestions functionality from JRediSearch. * Ported this from JRediSearch. * Ported more tests from JRediSearch. Fixed some silly bugs... * Ported the last three auto suggest tests from JRediSearch. * More tests ported from JRediSearch. * Implemented ability to add multiple documents at once. Started on deleting multiple documents at once... * In order to match the functionality found in JRediSearch, I'm catching RedisServerExceptions that contain the message "Document already in index". * Added support for the `INKEYS` search query modifier. * Ported in a covering test for the AggregationBuilder. * Cleaned up builder access in the Suggestion and SuggestionOptions classes. * Refactored IndexOptions to make them behave more like JRediSearch. Removed NOSCOREIDX as that has been deprecated. * PR feedback. Marked AggregationBuilder as sealed because (at least initially) we don't expect any inheritance here. Dropped the call to `ToString` when appending the value for "MAX" to a SortBy clause because it isn't needed. Changed `ArgsString` to a method to indicate that we're not simply exposing internal state. Made the method internal as it's present for test purposes. Removed the `Args` property because it's not clear that we need it. It was ported from JRediSearch because it was there. * Simplified this with a default value. * Removed calls to `ToString` in order to allow the library to worry about proper formatting. * Combined constructors here to keep things a bit simpler. * Cleaned up the unused import there. * Readded the `OptimizeIndex` and `OptimizeIndexAsync` methods here to preserve backwards compatibility. * Returning Array.Empty<Document> instead of a new empty array each time. * Sealed the suggestion class as there should be no reason (currently) for anything to inherit from it. Cleaned up how we're ensuring that an object to compare is not null and is of an appropriate type. Fixed equality check so that it doesn't blow up on null values (payload specifically). * Converted the class `With` to be an enum. * Now looking up these values on demand. * Reintroduced the original GetInfo API methods and changed the new ones to GetInfoParsed and GetInfoParsedAsync. * Revertered changes that turned ConfiguredIndexOptions into IndexOptions. Added in `SetNoStopwords` method to match the JRediSearch api as well as provide a conveinient means for keeping the default index options AND specifying that no stopwords be considered. Fixed `TestStopwords` unit test by specifying `STOPWORDS 0` by calling `SetNoStopwords` which adds the `DisableStopWords` option to the configured index options. * Since this optimization doesn't exist anymore it should be removed from your index definitions. * Added back the original get suggestions method, but this time it calls the new version which leverages the suggestion builder. Added a small covering test. * Consolidated the constructors here as suggested by Marc. Co-authored-by:
Nick Craver <nrcraver@gmail.com> Co-authored-by:
Marc Gravell <marc.gravell@gmail.com>
-
Björn Lundström authored
Co-authored-by:Björn Lundström <V912736@users.noreply.github.com>
-
Muhammad Adnan Rafiq authored
* Include details of abbreviations seen in exceptions I have been getting Redis Timeout under high load, but it was not making sense at all. So i opened the source to understand what these abbreviations meant. I hope it will help people understand error messages a lot better. My CPU Use case: If Redis dedicated thread pool state looks good, and global thread pool has more free threads than minimum threads, but your CPU is usage is 90%, more likely you will face time outs, depending upon the size of bytes client is trying to read or write. * Update Timeouts.md Updating abbreviations in markdown table.
-
Todd Tingen authored
* Updated StreamCreateConsumerGroup methods to use the MKSTREAM option. * Added overload for the createStream parameter on the StreamCreateConsumerGroup methods. * Corrected the Async overload. Co-authored-by:Marc Gravell <marc.gravell@gmail.com>
-
n1l authored
* Create public contructors for StackExchange.Redis event args to be able to create tests scenarios based on redis events. * Update c'tors description * Update event args, create tests
-
oruchreis authored
* Added "Return" parameter to Query. * Fixed api naming by JRediSearch, aslo added LimitKeys method
-
Todd Tingen authored
* Added support for NOACK in the StreamReadGroup methods. * Added overload for noAck parameter on StreamReadGroup methods.
-
Guy Korland authored
* Add support for TOUCH command * add async touch * add tests * fix tests build * Add Delay between calls * temp change * Update Keys.cs * fix tests * add server features support for Touch * add 3.2.1 version * fix test
-
Min authored
* Add sorte set length condition with range * Improve range condition test
-
- 02 Feb, 2020 3 commits
-
-
Nick Craver authored
fix small typos in docs
-
Nick Craver authored
-
Marc Gravell authored
- additional guidance on thread-theft - use UQUWI for continuations - remove handling from simple (non-task) results; no risk of thread-theft
-
- 01 Feb, 2020 4 commits
-
-
Vince Pergolizzi authored
-
Marc Gravell authored
-
Marc Gravell authored
-
Marc Gravell authored
-
- 27 Jan, 2020 3 commits
-
-
Nick Craver authored
-
mgravell authored
-
mgravell authored
- add more tracking levels to read-state - if PreventThreadTheft feature flag is enabled, explicitly push continuations to the thread-pool
-
- 06 Jan, 2020 1 commit
-
-
Nick Craver authored
Note that we're only building `StackExchange.Redis` and `NRediSearch` in the CI build so this wasn't apparent as an issue, but it's also easily remedied. Cleaning up the xUnit MyGet feed as well since it was an intermittent issue earlier in testing this...and turns out we don't use any betas or need them anymore, so why not simplify anyhow. Overall, this is a simpler alternative to #1313 and more build simplification/cleanup: Total changes: - Moves to 3.x build SDK (just to update) - Moves to `Visual Studio 2019` AppVeyor build image, for 3.x support (removes need to install SDK) - Rolls forward to latest version - Moves to `Build.csproj` for building - Simplifies `build.ps1` - Adds `NRediSearch` to the test suite (on Linux in CI, since Windows is against 3.x) - Adds `RedisFeatures.Module` (against v 4.0.0) to guard tests against - Makes `NRediSearch.Tests` reference `StackExchange.Redis.Tests` and support test skipping - Makes copyright year range dynamic for the library - Moves `LangVersion` to latest and in one place (root `Directory.Build.props`) - Uses `Microsoft.NETFramework.ReferenceAssemblies` to build `net4x` on Linux - Uses `IsPackable` to default to excluded then reverses to `true` only for the `src/` directory - Removes `xUnit` MyGet feed, since we're on stable builds now - Adds new files (and corrects old) in `.sln` - Removes `LibTargetFrameworks` to simplify since it's less complex given the above changes cc @mgravell for eyes - this should be all set now!
-
- 01 Jan, 2020 1 commit
-
-
Nick Craver authored
These got left behind in root due to being ignored in git, needed a good 'ol `git rm -r --cached RedisConfigs/Sentinel/` here.
-
- 24 Dec, 2019 3 commits
-
-
Faisal Abbas authored
Fixes #93.
-
Leandro López authored
The previous link was relative to the document, however, when displayed in GitHub Pages it ends in a 404. I've changed to point to the source file in GitHub UI.
-
Alexander Panfilenok authored
minor text fixes.
-
- 23 Dec, 2019 1 commit
-
-
Dillon Adams authored
Extending description of the IServer.Time and IServer.TimeAsync by specifying the timezone of the return values (#1311)
-
- 19 Dec, 2019 2 commits
- 20 Nov, 2019 1 commit
-
-
Aart Jan Kaptijn authored
-
- 19 Oct, 2019 3 commits
-
-
Odyth authored
Updated documentation to reflect that PreserveAsyncOrder is deprecated and ChannelMessageQueue should be used instead
-
Marc Gravell authored
Adds LATENCY and MEMORY command support and testing.
-
Eitan Har-Shoshanim authored
Implements #1238 - adds `HSTRLEN` command and testing.
-
- 14 Oct, 2019 1 commit
-
-
Nick Craver authored
This reverts commit a683d9c8.
-
- 03 Oct, 2019 1 commit
-
-
francoance authored
-
- 27 Sep, 2019 2 commits
-
-
Mykhailo Matviiv authored
-
Andrii authored
dedicate_ thread-pool is almost fully available --> dedicated thread-pool is almost fully available
-
- 19 Sep, 2019 1 commit
-
-
Tom Longhurst authored
* Accurate timespan if the stopwatch is high resolution * Made helper class internal instead of public
-
- 08 Aug, 2019 1 commit
-
-
Nick Craver authored
-
- 06 Aug, 2019 1 commit
-
-
Richard Mayes authored
-
- 21 Jul, 2019 1 commit
-
-
Nick Craver authored
Build images have slipped again, testing a rev to latest stable SDK generation and manually installing on Windows since Appveyor doesn't have it.
-