Commit Graph

474 Commits

Author SHA1 Message Date
antirez 453e01a091 Restore newline at the end of redis-cli.c 2020-03-13 16:21:55 +01:00
lifubang 1b72f4b749 add askpass mode
Signed-off-by: lifubang <lifubang@acmcoder.com>
2020-03-05 18:17:32 +08:00
Salvatore Sanfilippo f88f8661ac
Merge pull request #6804 from qetu3790/unstable
Fix not used constant in lru_test_mode.
2020-03-02 17:43:36 +01:00
lifubang dc8f947d7c correct help info for --user and --pass
Signed-off-by: lifubang <lifubang@acmcoder.com>
2020-02-12 16:34:22 +08:00
lifubang 540b917a26 fix ssl flag check for redis-cli
Signed-off-by: lifubang <lifubang@acmcoder.com>
2020-02-04 17:32:30 +08:00
Yossi Gottlieb 93edb3ff3a TLS: Fix missing initialization in redis-cli. 2020-01-29 21:40:02 +02:00
qetu3790 bd60c11bd8
Fix not used constant in lru_test_mode.
LRU_CYCLE_PERIOD is defined,but not used.
2020-01-23 17:18:07 +08:00
antirez d7a87d0ea4 redis-cli: some refactoring about not logging AUTH & co. 2019-12-12 09:40:36 +01:00
Itamar Haber 9f32d0eed2 Ommits from redis-cli's history 2019-10-31 15:45:52 +02:00
happynote3966 cd02c5944f fix comment typo in redis-cli.c 2019-10-25 22:31:55 +09:00
Yossi Gottlieb 0db3b0a0ff Merge remote-tracking branch 'upstream/unstable' into tls 2019-10-16 17:08:07 +03:00
Yossi Gottlieb 0132189007 Fix compile warnings when BUILD_TLS=no. 2019-10-15 15:24:32 +03:00
Yossi Gottlieb d7f2681a0c TLS: Improve CA certifiate configuration options.
This adds support for explicit configuration of a CA certs directory (in
addition to the previously supported bundle file).  For redis-cli, if no
explicit CA configuration is supplied the system-wide default
configuration will be adopted.
2019-10-08 17:58:50 +03:00
Yossi Gottlieb b087dd1db6 TLS: Connections refactoring and TLS support.
* Introduce a connection abstraction layer for all socket operations and
integrate it across the code base.
* Provide an optional TLS connections implementation based on OpenSSL.
* Pull a newer version of hiredis with TLS support.
* Tests, redis-cli updates for TLS support.
2019-10-07 21:06:13 +03:00
Salvatore Sanfilippo 2478b47b89
Merge pull request #6304 from dbenders/fix-issue-6141
Fix issue #6141: cluster rebalance does not support binary key
2019-09-30 17:43:58 +02:00
antirez eda703ab28 redis-cli: support for ACL style user/pass AUTH. 2019-09-23 19:57:13 +02:00
antirez b21dd082c3 redis-cli: CSV and RAW target for more RESP3 types. 2019-09-23 19:36:06 +02:00
antirez cc108057ff redis-cli: ability to start a session in RESP3 mode. 2019-09-23 17:55:05 +02:00
antirez 8ea185ea30 redis-cli: AUTH can now have 3 arguments as well. 2019-09-23 17:47:36 +02:00
antirez bb7546c913 RESP3: varbatim handling for other redis-cli outputs. 2019-09-23 17:42:57 +02:00
antirez 264708427b RESP3: implementation of verbatim output with TTY target. 2019-09-23 17:39:42 +02:00
antirez 12c56a8e75 redis-cli: always report server errors on read errors.
Before this commit we may have not consumer buffers when a read error is
encountered. Such buffers may contain errors that are important clues
for the user: for instance a protocol error in the payload we send in
pipe mode will cause the server to abort the connection. If the user
does not get the protocol error, debugging what is happening can be a
nightmare.

This commit fixes issue #3756.
2019-09-04 17:55:46 +02:00
Diego Bendersky b27f388344 pass len to alloc in clusterManagerMigrateKeysInReply 2019-08-05 17:35:50 -03:00
Salvatore Sanfilippo 53d1dc170c
Merge pull request #5921 from vattezhang/unstable_temp
fix: fix the if condition in clusterManagerShowClusterInfo
2019-03-13 12:18:08 +01:00
Salvatore Sanfilippo 02dab20026
Merge pull request #5894 from soloestoy/fix-rdb-warning
Fix compile some warnings
2019-03-13 11:47:48 +01:00
zhaozhao.zz 5a3d3d8be4 Fix compile warning in redis-cli.c 2019-03-13 16:54:34 +08:00
Salvatore Sanfilippo fba6e26e87
Merge pull request #5913 from wurongxin1987/unstable
fix a bufferoverflow bug
2019-03-12 17:25:21 +01:00
vattezhang bdc783b472 fix: fix the if condition in clusterManagerShowClusterInfo 2019-03-12 22:01:02 +08:00
wurongxin 0298d3ad18 fix a bufferoverflow bug 2019-03-10 15:30:32 +08:00
artix 93e51239ce Cluster Manager: add importing/migrating nodes to backup info 2019-03-06 16:38:36 +01:00
artix e6156a39bd Cluster Manager backup: remove --cluster-ignore-issue option
Always save the backup, even if there are problems in the cluster.
Just display a warn message and save "cluster_errors" property
inside the json.
2019-03-01 17:41:40 +01:00
artix 5e4dfc5c97 Cluster Manager: check cluster before backup
- Prevent cluster backup if cluster has issues and needs to be fixed.
  This behaviour can be overridden by adding the option
  '--cluster-ignore-issues'
2019-03-01 17:41:40 +01:00
artix fb020ab090 Cluster Manager: 'backup' command 2019-03-01 17:41:40 +01:00
artix 6cd64c6a98 Cluster Manager: change join issue message 2019-02-28 16:57:57 +01:00
artix 23ad3faa50 Cluster Manager: change text alert clusterManagerWaitForClusterJoin 2019-02-28 16:57:57 +01:00
artix 2593fb9c0c Cluster Manager: code cleanup 2019-02-28 16:57:57 +01:00
artix 6e9864fe0d Cluster Manager: fix bus error in clusterManagerGetLinkStatus 2019-02-28 16:57:57 +01:00
Artix 121adc604b Cluster Manager: fix memory leaks in clusterManagerGetDisconnectedLinks 2019-02-28 16:57:57 +01:00
artix b013d2c4db Cluster Manager: fix memory leak in clusterManagerWaitForClusterJoin 2019-02-28 16:57:57 +01:00
artix 3578aabc05 Cluster Manager: improve join issue checking 2019-02-28 16:57:57 +01:00
artix 2f499304aa Cluster Manager: check for unreachable nodes during cluster join. 2019-02-28 16:57:57 +01:00
Salvatore Sanfilippo 2d3cad684c
Merge pull request #5850 from artix75/dev
Cluster Manager: fix replica assignment anti-affinity (create)
2019-02-22 10:28:31 +01:00
Salvatore Sanfilippo 967a98f570
Merge pull request #4811 from oranagra/cli-diskless-repl
Add redis-cli support for diskless replication (CAPA EOF)
2019-02-21 12:54:15 +01:00
Oran Agra b6de51206e redis-cli add support for --memkeys, fix --bigkeys for module types
* bigkeys used to fail on databases with module type keys
* new code adds more types when it discovers them, but has no way to know element count in modules types yet
* bigkeys was missing XLEN command for streams
* adding --memkeys and --memkeys-samples to make use of the MEMORY USAGE command

see #5167, #5175
2019-02-21 12:18:20 +02:00
artix 0f28754021 Cluster Manager: fix replica assigment anti-affinity (create)
Fix issue #5849
2019-02-20 15:36:15 +01:00
artix 9fb160b130 Cluster Manager: remove unused code elements 2019-01-24 17:29:44 +01:00
Salvatore Sanfilippo 94460440b7
Merge pull request #5743 from AngusP/forever-repeat-cli
Redis CLI: Fix broken interval and repeat behaviour (incluing in cluster mode)
2019-01-22 17:29:37 +01:00
Zhicheng Wei c90cf3d82f fix clusterManagerGetAntiAffinityScore double free otypes 2019-01-19 11:38:36 +08:00
antirez 7d4b600f5d RESP3: redis-cli support for boolean in TTY output. 2019-01-09 17:00:30 +01:00
antirez 62b2642c51 RESP3: redis-cli: show the double as received from Redis. 2019-01-09 17:00:30 +01:00
antirez a2b2d88f38 RESP3: hiredis: initial double implementation. 2019-01-09 17:00:30 +01:00
antirez 005915b5c3 RESP3: hiredis: map and set display for TTY output. 2019-01-09 17:00:30 +01:00
Angus Pearson 2925bdc63b Add comment explaining negative repeat 2019-01-02 19:28:04 +00:00
Angus Pearson 2f6ed9333f Fix broken interval and repeat bahaviour in redis-cli (incluing cluster mode)
This addresses two problems, one where infinite (negative) repeat count is broken for all types for Redis,
and another specific to cluster mode where redirection is needed.

Now allows and works correctly for negative (i.e. -1) repeat values passed with `-r` argument to redis-cli
as documented here https://redis.io/topics/rediscli#continuously-run-the-same-command which seems to have
regressed as a feature in 95b988 (though that commit removed bad integer wrap-around to `0` behaviour).

This broken behaviour exists currently (e50458), and redis-cli will just exit immediately with repeat `-r <= 0`
as opposed to send commands indefinitely as it should with `-r < 0`

Additionally prevents a repeat * interval seconds hang/time spent doing nothing at the start before issuing
commands in cluster mode (`-c`), where the command needed to redirect to a slot on another node, as commands
where failing and waiting to be reissued but this was fully repeated before being reissued. For example,

        redis-cli -c -r 10 -i 0.5 INCR test_key_not_on_6379

Would hang and show nothing for 5 seconds (10 * 0.5) before showing

        (integer) 1
        (integer) 2
        (integer) 3
        (integer) 4
        (integer) 5
        (integer) 6
        (integer) 7
        (integer) 8
        (integer) 9
        (integer) 10

at half second intervals as intended.
2019-01-02 18:50:58 +00:00
artix 17797660f1 Cluster Manager del-node: use CLUSTER RESET in place of SHUTDOWN
See issue #5687
2018-12-27 17:20:42 +01:00
artix 503fd229e4 Cluster Manager: enable --cluster-replace also for 'fix' command. 2018-12-19 17:29:25 +01:00
artix cc29590188 Fixed memory leak in clusterManagerCompareKeysValues. 2018-12-18 18:45:10 +01:00
artix 143bfa1e6e Cluster Manager: compare key values after BUSYKEY error (migration).
If a key exists in the target node during a migration (BUSYKEY),
the value of the key on both nodes (source and target) will be compared.
If the key has the same value on both keys, the migration will be
automatically retried with the REPLACE argument in order to override
the target's key.

If the key has different values, the behaviour will depend on such
cases:
- In case of 'fix' command, the migration will stop and the user
  will be warned to manually check the key(s).
- In other cases (ie. reshard), if the user launched the command
  with the --cluster-replace option, the migration will be
  retried with the REPLACE argument, elsewhere the migration will
  stop and the user will be warned.
2018-12-18 17:45:35 +01:00
artix d935cfcb89 Cluster Manager: avoid using reply error messages to check slot status.
Slot assignment status is now checked by using CLUSTER SLOTS.
Furthermore, one memory leak has been fixed.
2018-12-12 13:34:43 +01:00
artix 27ddb2ba3a Cluster Manager:
- Multiple owners checking in 'fix'/'check' commands is now
  optional (using --cluster-search-multiple-owners).
- Updated help.
2018-12-10 18:01:18 +01:00
artix 0c1336caf4 Cluster Manager:
- FixOpenSlot now correctly updates in-memory cluster configuration.
    - Improved output messages.
2018-12-10 17:43:58 +01:00
artix 1a56fc913e Cluster Manager: 'fix' command now handles open slots with migrating state
in one node and importing state in multiple nodes.
2018-12-10 17:43:58 +01:00
artix d5f7703367 Cluster Manager: setting new slot owner is now handled atomically
in 'fix' command.
2018-12-10 17:43:58 +01:00
artix eaac9f9e93 Cluster Manager: code cleanup. 2018-12-10 17:43:58 +01:00
artix 5bf13eaaf8 Cluster Manager: check/fix commands now handle multiple owners even if
all slots are covered and not open.
2018-12-10 17:39:54 +01:00
yura 74f942cfa5 redis-cli reshard/rebalance: ability to force replacement on existing keys 2018-12-07 14:14:11 +03:00
Salvatore Sanfilippo 9f87ef9399
Merge pull request #5460 from krallin/env-password
cli: pass auth through REDISCLI_AUTH
2018-12-07 11:30:07 +01:00
yongman dfe81b33fe Fix cluster call reply format readable 2018-12-04 17:36:42 +08:00
yongman 221dfbd322 fix typo 2018-11-23 23:51:16 +08:00
yongman 2961c89161 Fix choose a random master node for slot assignment 2018-11-23 16:58:55 +08:00
yongman 2f76829dc7 skip slave nodes when sending cluster setslot command 2018-11-21 23:01:35 +08:00
yongman 64324901f2 Fix pointer access and memory leak in redis-cli. 2018-11-16 17:27:27 +08:00
Salvatore Sanfilippo d9e822a14b
Merge pull request #5529 from yongman/fix-rediscli-malloc
fix zmalloc in clusterManagerComputeReshardTable
2018-11-06 12:05:24 +01:00
yongman 4e74d9cf55 fix malloc in clusterManagerComputeReshardTable 2018-11-06 10:51:19 +08:00
artix 3a2d82ae8e Cluster Manager: removed unused var. 2018-11-05 14:19:45 +01:00
artix 18ddbf0352 Cluster Manager: further improvements to "fix":
- clusterManagerFixOpenSlot: ensure that the
  slot is unassigned before ADDSLOTS
- clusterManagerFixSlotsCoverage: after cold
  migration, the slot configuration
  is now updated on all the nodes.
2018-11-05 14:15:31 +01:00
artix d6f0a9ac72 Cluster Manager: fixed string parsing issue in clusterManagerGetConfigSignature 2018-11-05 14:15:22 +01:00
artix 2e9859cbfc Cluster Manager: better fix subcommand. 2018-11-05 14:15:12 +01:00
artix be3a9dbb6f Cluster Manager: fixed typos in comments. 2018-11-05 14:15:01 +01:00
artix ab270a9777 Cluster Manager: fixed 'DELSLOT' subcommand typo. 2018-11-05 14:14:45 +01:00
Thomas Orozco f24ad5d831 cli: pass auth through REDISCLI_AUTH
This adds support for passing a password through a REDISCLI_AUTH
environment variable (which is safer than the CLI), which might often be
safer than passing it through a CLI argument.

Passing a password this way does not trigger the warning about passing a
password through CLI arguments, and CLI arguments take precedence over
it.
2018-10-19 19:15:14 +02:00
artix 81c4be42c1 Cluster Manager: clusterManagerFixOpenSlot now counts node's keys in slot
if node is neither migrating nor importing.
2018-09-17 16:26:46 +02:00
antirez 9f43264f86 Revert "fix repeat argument issue and reduce unnessary loop times for redis-cli."
Reverts commit 9505dd2011
since the commit introduced the very serious bug issue #5286.
2018-09-17 16:24:07 +02:00
antirez 096c74c886 LOLWUT: show the output verbatim in redis-cli. 2018-09-11 16:29:31 +02:00
antirez 8296e5c846 Slave removal: slave mode -> replica mode text in redis-cli. 2018-09-11 15:32:28 +02:00
antirez f579b77449 Slave removal: redis-cli --slave -> --replica.
--slave alias remains but is undocumented, just for backward
compatibiltiy.
2018-09-11 15:32:28 +02:00
Salvatore Sanfilippo 83b8eaa638
Merge pull request #5239 from jeffreylovitz/cli-help-fix
CLI Help text loop verifies arg count
2018-09-07 12:28:22 +02:00
Weiliang Li db74d71eb3 fix usage typo in redis-cli 2018-09-06 13:40:05 +08:00
Jeffrey Lovitz bd01334da1 CLI Help text loop verifies arg count 2018-08-12 12:47:01 -04:00
artix d4182a0a0d Cluster Manager: more checks on --cluster-weight option. 2018-07-13 10:51:58 +02:00
artix 513eb5728c Cluster Manager: auth support (-a argument). 2018-07-13 10:51:58 +02:00
tengfeng 9505dd2011 fix repeat argument issue and reduce unnessary loop times for redis-cli. 2018-07-10 20:58:01 +08:00
antirez b67f027699 redis-cli: fix #4990 additional argument in help. 2018-07-09 13:36:47 +02:00
antirez 18d65849fd redis-cli: fix #5096 double error message. 2018-07-09 13:25:48 +02:00
antirez 846203279c redis-cli: cliConnect() flags CC_FORCE and CC_QUIET.
We need CC_QUIET in order to fix #5096 by silently failing if needed.
2018-07-09 13:24:30 +02:00
minkikim89 62a4a8c1d5 fix whitespace in redis-cli.c 2018-07-09 12:59:13 +02:00
Jack Drogon 93238575f7 Fix typo 2018-07-03 18:19:46 +02:00
Salvatore Sanfilippo a0b05a0424
Merge pull request #5075 from soloestoy/client-list-types
FEATURE: implements client list type option
2018-06-29 18:00:32 +02:00
dejun.xdj 9f1856268c Check if password is used on command line interface. 2018-06-28 19:09:22 +08:00
dejun.xdj 1139070a0f Fix trailing white space. 2018-06-28 18:47:28 +08:00
dejun.xdj bbd0ca9522 Fix code format issue. 2018-06-28 18:39:42 +08:00
dejun.xdj 7becf54e51 Don't output password warning message when --no-auth-warning is used. 2018-06-28 18:38:24 +08:00
dejun.xdj bde05e9c32 Avoid -Woverlength-strings compile warning.
Using another fprintf call to output the rest help message.
2018-06-28 18:22:06 +08:00
dejun.xdj 0b74fd6766 Add --no-auth-warning help message. 2018-06-28 18:17:04 +08:00
zhaozhao.zz b9cbd04b57 clients: add type option for client list 2018-06-28 17:43:05 +08:00
antirez ce17f76bbd Security: fix redis-cli buffer overflow.
Thanks to Fakhri Zulkifli for reporting it.

The fix switched to dynamic allocation, copying the final prompt in the
static buffer only at the end.
2018-06-13 12:40:33 +02:00
antirez 269e80526f Implement DEBUG htstats-key. 2018-06-08 11:17:20 +02:00
shenlongxing c85ae56edc Fix write() errno error 2018-06-06 13:06:42 +02:00
Yossi Gottlieb e1222d8b10 Clean gcc 7.x warnings, redis-cli cluster fix. 2018-06-03 15:54:30 +03:00
artix d168b245b3 Cluster Manager: fixed master_id check in clusterManagerNodeLoadInfo 2018-06-01 16:19:47 +02:00
artix 4bce88b11f Cluster Manager: fixed infinite loop in rebalance (Issue #4941). 2018-05-31 15:59:16 +02:00
Salvatore Sanfilippo 18b7f71130
Merge pull request #4932 from 0xtonyxia/fix-redis-cli-set-prefer-memory-leak
Fix redis-cli memory leak when sending set :preference command.
2018-05-24 16:15:21 +02:00
Salvatore Sanfilippo ef7ccad180
Merge pull request #4922 from 0xtonyxia/enhance-cli-security
Enhance security for redis-cli
2018-05-24 16:14:42 +02:00
dejun.xdj 46e241ac8e Fix redis-cli memory leak when sending set preference command. 2018-05-21 12:19:37 +08:00
dejun.xdj 95b988b6c6 Check if the repeat value is positive in while loop of cliSendCommand().
In case that the incoming repeat parameter is negative and causes a
deadless loop.
2018-05-21 12:06:48 +08:00
dejun.xdj cc7ffdfdf2 Change the type of repeat argument to long for function cliSendCommand.
To be in consistent with the original definition.
2018-05-21 12:04:53 +08:00
dejun.xdj b2762f1ff2 Fix negtive repeat command value issue.
If command like "-1 set a b" is sent with redis-cli, it will cause a deadless loop. So some repeat value checking logic is added to avoid this.
2018-05-19 22:50:40 +08:00
dejun.xdj c2e2314640 Detect and stop saving history for auth command with repeat option.
Put the repeat option checking code a little forward to avoid repeat logic.
2018-05-18 11:40:05 +08:00
dejun.xdj ef931ef93e Change the warning message a little bit to avoid trademark issuses. 2018-05-18 11:37:31 +08:00
artix e47c751c74 Removed TODO in redis-cli 2018-05-16 18:04:13 +02:00
artix 1e4fb1b33a Cluster Manager: fixed unprinted reply error 2018-05-16 17:49:18 +02:00
dejun.xdj b263c7c465 Stop saving auth command in redis-cli history. 2018-05-16 16:18:00 +08:00
dejun.xdj c082221aef Add warning message when using password on command line 2018-05-16 16:15:12 +08:00
artix 2f9c032a13 Cluster Manager: print flags as strings. 2018-05-15 18:41:46 +02:00
artix 3c039996b5 - Fixed mistyped redis command (clusterManagerGetNodeWithMostKeysInSlot)
- Cluster node structure is now updated after ADDSLOTS
2018-05-11 18:29:12 +02:00
artix 3312de067c Cluster Manager: --cluster options can now be placed everywhere 2018-05-07 17:31:34 +02:00
artix be94e89031 Cluster Manager: fixed expected slots calculation (rebalance)
Cluster Manager: fixed argument parsing after --cluster-weight
2018-04-23 16:28:48 +02:00
artix 2f31545beb Cluster Manager: fixed bug when parsing CLUSTER NODES reply (clusterManagerNodeLoadInfo) 2018-04-23 16:28:48 +02:00
artix 5bc2c98789 Cluster Manager: code improvements and more comments added. 2018-04-23 16:28:48 +02:00
artix 5f358dae33 Cluster Manager: set-timeout command 2018-04-23 16:28:48 +02:00
artix 52f17f6f8e - Cluster Manager: del-node command.
- Cluster Manager: fixed bug in clusterManagerNodeWithLeastReplicas
2018-04-23 16:28:48 +02:00
artix aeaf6ee1c3 Cluster Manager: add-node command. 2018-04-23 16:28:48 +02:00
artix efa51f1617 Cluster Manager: added clusterManagerCheckCluster to import command 2018-04-23 16:28:48 +02:00
artix 1f548359cb Cluster Manager: import command 2018-04-23 16:28:48 +02:00
artix 3f8a4adb49 Cluster Manager: fix command. 2018-04-23 16:28:48 +02:00
artix 6d1a7cec23 Cluster Manager: rebalance command 2018-04-23 16:28:48 +02:00
artix adebee8adc clusterManagerAddSlots: changed the way ADDSLOTS command is built 2018-04-23 16:28:48 +02:00
artix a4a1c7bb52 ClusterManager: fixed --cluster-from 'all' parsing 2018-04-23 16:28:48 +02:00
Artix 5b3d73b3d7 Cluster Manager: fixed some memory error 2018-04-23 16:28:48 +02:00
artix 220375b424 Fixed memory write error in clusterManagerGetConfigSignature 2018-04-23 16:28:48 +02:00
artix 99da9c9508 Cluster Manager: reshard command, fixed slots
parsing bug and other minor bugs.
2018-04-23 16:28:48 +02:00
artix 7d609ff952 Cluster Manager:
- Almost all Cluster Manager related code moved to
  the same section.
- Many macroes converted to functions
- Added various comments
- Little code restyling
2018-04-23 16:28:48 +02:00
artix 4e0c2f9c3c - Fixed bug in clusterManagerGetAntiAffinityScore
- Code improvements
2018-04-23 16:28:48 +02:00
artix 18910013cd Cluster Manager: colorized output 2018-04-23 16:28:48 +02:00
artix 307d995f75 Cluster Manager: improved cleanup/error handling in various functions 2018-04-23 16:28:48 +02:00
artix 2d677e2bf3 Cluster Manager: 'call' command. 2018-04-23 16:28:48 +02:00
artix 1ad1f00163 Cluster Manager: CLUSTER_MANAGER_NODE_CONNECT macro 2018-04-23 16:28:48 +02:00
artix 2f48d62423 ClusterManager: added replicas count to clusterManagerNode 2018-04-23 16:28:48 +02:00
artix c002b95d89 Cluster Manager: cluster is considered consistent if only one node has been found 2018-04-23 16:28:48 +02:00
artix 4cc8de1a37 Cluster Manager: reply error catch for MEET command 2018-04-23 16:28:48 +02:00