I think I found a workaround for redis3 sessions. Here is a mod that works for me:
diff --git a/gluon/contrib/redis_session.py b/gluon/contrib/redis_session.py
index 6413b52a..73c20422 100644
--- a/gluon/contrib/redis_session.py
+++ b/gluon/contrib/redis_session.py
@@ -13,7 +13,7 @@ from gluon import current
from gluon.storage import Storage
from gluon.contrib.redis_utils import acquire_lock, release_lock
from gluon.contrib.redis_utils import register_release_lock
-from gluon._compat import to_native
+from gluon._compat import to_native,to_bytes
from datetime import datetime
logger = logging.getLogger("web2py.session.redis")
@@ -208,7 +208,7 @@ class MockQuery(object):
if rtn:
if self.unique_key:
# make sure the id and unique_key are correct
- if rtn['unique_key'] == to_native(self.unique_key):
+ if rtn['unique_key'] == to_bytes(self.unique_key):
rtn['update_record'] = self.update # update record support
else:
rtn = None