Your options are as follows:
- Using
LREMand replacing it if it was found. - Maintaining a separate
SETin conjunction with yourLIST - Looping through the
LISTuntil you find the item or reach the end.
Redis lists are implemented as a http://en.wikipedia.org/wiki/Linked_list, hence the limitations.
I think your best option is maintaining a duplicate SET. This is what I tend to do. Just think of it as an extra index. Regardless, make sure your actions are atomic with MULTI–EXEC or Lua scripts.