Do you feel that e.g. Redis fails to satisfy the same definition in basically the same ways? If it does fulfill the criteria, what do you see as the distinction?
Calling Redis a database is a generous generalization. For example, Redis does not necessarily provide the same kind of durability as a database does, nor the capabilities one would expect from an RDBMS. In many cases, depending on configuration, it might be more appropriate to instead refer to Redis as a cache, an in-memory database, or a NoSQL database.