Add script to expire existing DocOps lists
user
```coffeescript
Settings = require "settings-sharelatex"
rclient = require("redis-sharelatex").createClient(Settings.redis.documentupdater)
keys = Settings.redis.documentupdater.key_schema
async = require "async"
RedisManager = require "./app/js/RedisManager"

getKeysFromNode = (node, pattern, callback) ->
	cursor = 0  # redis iterator
	keySet = {} # use hash to avoid duplicate results
	# scan over all keys looking for pattern
	doIteration = (cb) ->
		node.scan cursor, "MATCH", pattern, "COUNT", 1000, (error, reply) ->
			return callback(error) if error?
			[cursor, keys] = reply
			console.log "SCAN", keys.length
			for key in keys
				keySet[key] = true
			if cursor == '0'  # note redis returns string result not numeric
				return callback(null, Object.keys(keySet))
			else
				doIteration()
	doIteration()

getKeys = (pattern, callback) ->
	nodes = rclient.nodes?('master') || [ rclient ];
	console.log "GOT NODES", nodes.length
	doKeyLookupForNode = (node, cb) ->
		getKeysFromNode node, pattern, cb
	async.concatSeries nodes, doKeyLookupForNode, callback

TTL = 60 * 60 # 1 hour
expireDocOps = (callback) ->
	getKeys keys.docOps(doc_id: "*"), (error, keys) ->
		async.mapSeries keys,
			(key, cb) ->
				console.log "EXPIRE #{key} #{RedisManager.DOC_OPS_TTL}"
				rclient.expire key, RedisManager.DOC_OPS_TTL, cb
			callback

setTimeout () -> #  Give redis a chance to connect
	expireDocOps (error) ->
		throw error if error?
		process.exit()
, 1000```
assistant