Skip to main content



JSON.ARRAPPEND key [path] value [value ...]

Time complexity: O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

ACL categories: @json

Append the json values into the array at path after the last element in it


Required arguments


is key to modify.


is one or more values to append to one or more arrays.

About using strings with JSON commands

To specify a string as an array value to append, wrap the quoted string with an additional set of single quotes. Example: '"silver"'. For more detailed use, see Examples.

Optional arguments


is JSONPath to specify. Default is root $.

Return value

JSON.ARRAPEND returns an array of integer replies for each path, the array's new size, or nil, if the matching JSON value is not an array. For more information about replies, see Redis serialization protocol specification.


Add a new color to a list of product colors

Create a document for noise-cancelling headphones in black and silver colors.

dragonfly> JSON.SET item:1 $ '{"name":"Noise-cancelling Bluetooth headphones","description":"Wireless Bluetooth headphones with noise-cancelling technology","connection":{"wireless":true,"type":"Bluetooth"},"price":99.98,"stock":25,"colors":["black","silver"]}'

Add color blue to the end of the colors array. JSON.ARRAPEND returns the array's new size.

dragonfly> JSON.ARRAPPEND item:1 $.colors '"blue"'
1) (integer) 3

Return the new length of the colors array.

dragonfly> JSON.GET item:1
"{\"name\":\"Noise-cancelling Bluetooth headphones\",\"description\":\"Wireless Bluetooth headphones with noise-cancelling technology\",\"connection\":{\"wireless\":true,\"type\":\"Bluetooth\"},\"price\":99.98,\"stock\":25,\"colors\":[\"black\",\"silver\",\"blue\"]}"

See also