Updating based on feedback from the pull request.
@@ -822,12 +822,19 @@ class StrictRedis(object):
"Returns a list of slaves for ``service_name``"
return self.execute_command('SENTINEL SLAVES', service_name)
- def shutdown(self, save=True):
- "Shutdown the server"
- try:
+ def shutdown(self, save=False, nosave=False):
+ """Shutdown the Redis server. If Redis has persistence configured, data will be flushed before shutdown. If
+ the "save" option is set, a data flush will be attempted even if there is no persistence configured. If the
+ "nosave" option is set, no data flush will be attempted. The "save" and "nosave" options cannot both be set.
+ """
+ if save and nosave:
+ raise RedisError('SHUTDOWN save and nosave cannot both be set')
args = ['SHUTDOWN']
- if not save:
+ if save:
+ args.append('SAVE')
+ if nosave:
args.append('NOSAVE')
+ try:
self.execute_command(*args)
except ConnectionError:
# a ConnectionError here is expected
