# Flask Session Cache

***

**1. Store Session Data in a Cache:**

```python
import flask
from flask_session_cache import Cache

app = flask.Flask(__name__)
app.config["SESSION_CACHE_TYPE"] = "redis"
app.config["SESSION_REDIS"] = {
    "host": "localhost",
    "port": 6379,
    "db": 0
}

cache = Cache()
cache.init_app(app)
```

**2. Customize Cache Server Configuration:**

```python
app.config["SESSION_CACHE_TYPE"] = "memcached"
app.config["SESSION_MEMCACHED"] = {
    "hosts": ["127.0.0.1:11211"],
    "username": "my_username",
    "password": "my_password"
}
```

**3. Set Session Expiration Time:**

```python
app.config["SESSION_CACHE_TTL"] = 600
```

**4. Disable Session Cache:**

```python
app.config["SESSION_CACHE_ENABLED"] = False
```

**5. Store Session Data in a Database:**

```python
app.config["SESSION_CACHE_TYPE"] = "sqlalchemy"
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////tmp/test.db"
```

**6. Use a Custom Cache Server:**

```python
from flask_session_cache import CacheFactory

cache = CacheFactory()
cache.set_backend("my_backend")
```

**7. Pass Cache Server Arguments:**

```python
app.config["SESSION_REDIS"] = {"host": "127.0.0.1", "port": 6380}
```

**8. Set Cache Timeout:**

```python
app.config["SESSION_CACHE_TIMEOUT"] = 5
```

**9. Customize Session Key Prefix:**

```python
app.config["SESSION_CACHE_KEY_PREFIX"] = "my_prefix"
```

**10. Use a Session Handler:**

```python
from flask_session_cache import SessionHandler

app.session_handler = SessionHandler()
```

**11. Set Session Cache Key:**

```python
app.config["REDIS_SESSION_KEY"] = "my_session_key"
```

**12. Use a Custom Session Serializer:**

```python
from flask_session_cache import SessionSerializer

serializer = SessionSerializer()
serializer.set_encoding("my_encoding")
```

**13. Customize Session Cookie Name:**

```python
app.config["SESSION_CACHE_COOKIE_NAME"] = "my_session_cookie"
```

**14. Set Session Cookie Secure:**

```python
app.config["SESSION_CACHE_COOKIE_SECURE"] = True
```

**15. Set Session Cookie Domain:**

```python
app.config["SESSION_CACHE_COOKIE_DOMAIN"] = "my_domain.com"
```

**16. Set Session Cookie Path:**

```python
app.config["SESSION_CACHE_COOKIE_PATH"] = "/my_path"
```

**17. Set Session Cookie Max Age:**

```python
app.config["SESSION_CACHE_COOKIE_MAX_AGE"] = 600
```

**18. Customize Session Cookie SameSite:**

```python
app.config["SESSION_CACHE_COOKIE_SAMESITE"] = "Lax"
```

**19. Set Session Cookie HTTP Only:**

```python
app.config["SESSION_CACHE_COOKIE_HTTPONLY"] = True
```

**20. Use a Custom Session Key:**

```python
app.config["SESSION_CACHE_KEY"] = "my_session_cache_key"
```

**21. Set Default Session Lock:**

```python
app.config["SESSION_CACHE_DEFAULT_LOCK"] = "locky_lock"
```

**22. Use a Custom Session Lock:**

```python
from flask_session_cache import SessionLock

lock = SessionLock()
lock.set_backend("my_lock_backend")
```

**23. Disable Session Cookie:**

```python
app.config["SESSION_CACHE_COOKIE_ENABLED"] = False
```

**24. Use Redis Sentinel:**

```python
app.config["SESSION_CACHE_TYPE"] = "redis_sentinel"
app.config["SESSION_REDIS_SENTINEL"] = {"hosts": [{"host": "my_host", "port": 6379}]}
```

**25. Use Memcached Sentinel:**

```python
app.config["SESSION_CACHE_TYPE"] = "memcached_sentinel"
app.config["SESSION_MEMCACHED_SENTINEL"] = {"hosts": [{"host": "my_host", "port": 11211}]}
```

**26. Set Session Prefix:**

```python
app.config["SESSION_CACHE_PREFIX"] = "my_session_cache_prefix"
```

**27. Use a Custom Cache Key:**

```python
from flask_session_cache import CacheKey

cache_key = CacheKey()
cache_key.set_encoding("my_encoding")
```

**28. Customize Session Timeout:**

```python
app.config["SESSION_CACHE_SAVE_TIMEOUT"] = 60
```

**29. Set Session Cache Backend Options:**

```python
app.config["SESSION_CACHE_BACKEND_OPTS"] = {"pool_timeout": 60}
```

**30. Use a Custom Session Handler:**

```python
from flask_session_cache import SessionHandlerFactory

handler = SessionHandlerFactory()
handler.set_backend("my_handler_backend")
```

**31. Set Session Cache Prefix:**

```python
app.config["SESSION_CACHE_PREFIX"] = "my_session_cache_prefix"
```

**32. Set Session Cache Cookie Name:**

```python
app.config["SESSION_CACHE_COOKIE_NAME"] = "my_session_cookie_name"
```

**33. Set Session Cache Cookie Domain:**

```python
app.config["SESSION_CACHE_COOKIE_DOMAIN"] = "my_session_cookie_domain"
```

**34. Set Session Cache Cookie Path:**

```python
app.config["SESSION_CACHE_COOKIE_PATH"] = "my_session_cookie_path"
```

**35. Set Session Cache Cookie Secure:**

```python
app.config["SESSION_CACHE_COOKIE_SECURE"] = True
```

**36. Set Session Cache Cookie HTTP Only:**

```python
app.config["SESSION_CACHE_COOKIE_HTTPONLY"] = True
```
