# Class yii\redis\Session

Inheritance | yii\redis\Session » yii\web\Session » yii\base\Component » yii\base\BaseObject
Implements | ArrayAccess, Countable, IteratorAggregate, yii\base\Configurable
Available since version | 2.0
Source Code | https://github.com/yiisoft/yii2-redis/blob/master/Session.php

Redis Session implements a session component using redis as the storage medium.

Redis Session requires redis version 2.6.12 or higher to work properly.

It needs to be configured with a redis yii\redis\Connection that is also configured as an application component. By default it will use the `redis` application component.

To use redis Session as the session application component, configure the application as follows,

    [
        'components' => [
            'session' => [
                'class' => 'yii\redis\Session',
                'redis' => [
                    'hostname' => 'localhost',
                    'port' => 6379,
                    'database' => 0,
                ]
            ],
        ],
    ]

Or if you have configured the redis yii\redis\Connection as an application component, the following is sufficient:

    [
        'components' => [
            'session' => [
                'class' => 'yii\redis\Session',
                // 'redis' => 'redis' // id of the connection application component
            ],
        ],
    ]

## Public Properties

Hide inherited properties

Property | Type | Description | Defined By
--- | --- | --- | ---
$allFlashes | array | Flash messages (key => message or key => [message1, message2]). This property is read-only. | yii\web\Session
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. This property is read-only. | yii\base\Component
$cacheLimiter | string | Current cache limiter. This property is read-only. | yii\web\Session
$cookieParams | array | The session cookie parameters. This property is read-only. | yii\web\Session
$count | integer | The number of session variables. This property is read-only. | yii\web\Session
$flash | string | The key identifying the flash message. Note that flash messages and normal session variables share the same name space. If you have a normal session variable using the same name, its value will be overwritten by this method. This property is write-only. | yii\web\Session
$flashParam | string | The name of the session variable that stores the flash message data. | yii\web\Session
$gCProbability | float | The probability (percentage) that the GC (garbage collection) process is started on every session initialization. | yii\web\Session
$handler | SessionHandlerInterface|array | An object implementing the SessionHandlerInterface or a configuration array. | yii\web\Session
$hasSessionId | boolean | Whether the current request has sent the session ID. | yii\web\Session
$id | string | The current session ID. | yii\web\Session
$isActive | boolean | Whether the session has started. This property is read-only. | yii\web\Session
$iterator | yii\web\SessionIterator | An iterator for traversing the session variables. This property is read-only. | yii\web\Session
$keyPrefix | string | A string prefixed to every cache key so that it is unique. | yii\redis\Session
$name | string | The current session name. | yii\web\Session
$redis | yii\redis\Connection|string|array | The Redis yii\redis\Connection object or the application component ID of the Redis yii\redis\Connection. | yii\redis\Session
$savePath | string | The current session save path, defaults to '/tmp'. | yii\web\Session
$timeout | integer | The number of seconds after which data will be seen as 'garbage' and cleaned up. The default value is 1440 seconds (or the value of "session.gc_maxlifetime" set in php.ini). | yii\web\Session
$useCookies | boolean|null | The value indicating whether cookies should be used to store session IDs. | yii\web\Session
$useCustomStorage | boolean | Whether to use custom storage. This property is read-only. | yii\redis\Session
$useStrictMode | boolean | Whether strict mode is enabled or not. This property is read-only. | yii\web\Session
$useTransparentSessionID | boolean | Whether transparent sid support is enabled or not, defaults to false. | yii\web\Session

## Protected Properties

Hide inherited properties

Property | Type | Description | Defined By
--- | --- | --- | ---
$_forceRegenerateId | string|null | Holds the session id in case useStrictMode is enabled and the session id needs to be regenerated | yii\web\Session
$_originalSessionModule | string|null | Holds the original session module (before a custom handler is registered) so that it can be restored when a Session component without custom handler is used after one that has. | yii\web\Session

## Public Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
__call() | Calls the named method which is not a class method. | yii\base\Component
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component
__construct() | Constructor. | yii\base\BaseObject
__get() | Returns the value of a component property. | yii\base\Component
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component
__set() | Sets the value of a component property. | yii\base\Component
__unset() | Sets a component property to be null. | yii\base\Component
addFlash() | Adds a flash message. | yii\web\Session
attachBehavior() | Attaches a behavior to this component. | yii\base\Component
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component
className() | Returns the fully qualified name of this class. | yii\base\BaseObject
close() | Ends the current session and store session data. | yii\web\Session
closeSession() | Session close handler. | yii\web\Session
count() | Returns the number of items in the session. | yii\web\Session
destroy() | Frees all session variables and destroys all data registered to a session. | yii\web\Session
destroySession() | Session destroy handler. | yii\redis\Session
detachBehavior() | Detaches a behavior from the component. | yii\base\Component
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component
gcSession() | Session GC (garbage collection) handler. | yii\web\Session
get() | Returns the session variable value with the session variable name. | yii\web\Session
getAllFlashes() | Returns all flash messages. | yii\web\Session
getBehavior() | Returns the named behavior object. | yii\base\Component
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component
getCacheLimiter() | Returns current cache limiter | yii\web\Session
getCookieParams() |  | yii\web\Session
getCount() | Returns the number of items in the session. | yii\web\Session
getFlash() | Returns a flash message. | yii\web\Session
getGCProbability() |  | yii\web\Session
getHasSessionId() | Returns a value indicating whether the current request has sent the session ID. | yii\web\Session
getId() | Gets the session ID. | yii\web\Session
getIsActive() |  | yii\web\Session
getIterator() | Returns an iterator for traversing the session variables. | yii\web\Session
getName() | Gets the name of the current session. | yii\web\Session
getSavePath() | Gets the current session save path. | yii\web\Session
getTimeout() |  | yii\web\Session
getUseCookies() | Returns the value indicating whether cookies should be used to store session IDs. | yii\web\Session
getUseCustomStorage() | Returns a value indicating whether to use custom session storage. | yii\redis\Session
getUseStrictMode() |  | yii\web\Session
getUseTransparentSessionID() |  | yii\web\Session
has() |  | yii\web\Session
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component
hasFlash() | Returns a value indicating whether there are flash messages associated with the specified key. | yii\web\Session
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component
init() | Initializes the redis Session component. | yii\redis\Session
off() | Detaches an existing event handler from this component. | yii\base\Component
offsetExists() | This method is required by the interface ArrayAccess. | yii\web\Session
offsetGet() | This method is required by the interface ArrayAccess. | yii\web\Session
offsetSet() | This method is required by the interface ArrayAccess. | yii\web\Session
offsetUnset() | This method is required by the interface ArrayAccess. | yii\web\Session
on() | Attaches an event handler to an event. | yii\base\Component
open() | Starts the session. | yii\web\Session
openSession() | Session open handler. | yii\redis\Session
readSession() | Session read handler. | yii\redis\Session
regenerateID() | Updates the current session ID with a newly generated one. | yii\web\Session
remove() | Removes a session variable. | yii\web\Session
removeAll() | Removes all session variables. | yii\web\Session
removeAllFlashes() | Removes all flash messages. | yii\web\Session
removeFlash() | Removes a flash message. | yii\web\Session
set() | Adds a session variable. | yii\web\Session
setCacheLimiter() | Set cache limiter | yii\web\Session
setCookieParams() | Sets the session cookie parameters. | yii\web\Session
setFlash() | Sets a flash message. | yii\web\Session
setGCProbability() |  | yii\web\Session
setHasSessionId() | Sets the value indicating whether the current request has sent the session ID. | yii\web\Session
setId() | Sets the session ID. | yii\web\Session
setName() | Sets the name for the current session. | yii\web\Session
setSavePath() | Sets the current session save path. | yii\web\Session
setTimeout() |  | yii\web\Session
setUseCookies() | Sets the value indicating whether cookies should be used to store session IDs. | yii\web\Session
setUseStrictMode() |  | yii\web\Session
setUseTransparentSessionID() |  | yii\web\Session
trigger() | Triggers an event. | yii\base\Component
writeSession() | Session write handler. | yii\redis\Session

## Protected Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
calculateKey() | Generates a unique key used for storing session data in cache. | yii\redis\Session
freeze() | If session is started it's not possible to edit session ini settings. In PHP7.2+ it throws exception. | yii\web\Session
registerSessionHandler() | Registers session handler. | yii\web\Session
unfreeze() | Starts session and restores data from temporary variable | yii\web\Session
updateFlashCounters() | Updates the counters for flash messages and removes outdated flash messages. | yii\web\Session

## Property Details

$keyPrefix public property

A string prefixed to every cache key so that it is unique. If not set, it will use a prefix generated from yii\base\Application::$id. You may set this property to be an empty string if you don't want to use key prefix. It is recommended that you explicitly set this property to some static value if the cached data needs to be shared among multiple applications.

public string $keyPrefix = null
$redis public property

The Redis yii\redis\Connection object or the application component ID of the Redis yii\redis\Connection. This can also be an array that is used to create a redis yii\redis\Connection instance in case you do not want do configure redis connection as an application component. After the Session object is created, if you want to change this property, you should only assign it with a Redis yii\redis\Connection object.

public yii\redis\Connection|string|array $redis = 'redis'
$useCustomStorage public property

Whether to use custom storage. This property is read-only.

public boolean $useCustomStorage = null

## Method Details

calculateKey() protected method

Generates a unique key used for storing session data in cache.

protected string calculateKey ( $id )
$id | string | Session variable name
return | string | A safe cache key associated with the session variable name

destroySession() public method

Session destroy handler.

Do not call this method directly.

public boolean destroySession ( $id )
$id | string | Session ID
return | boolean | Whether session is destroyed successfully

getUseCustomStorage() public method

Returns a value indicating whether to use custom session storage.

This method overrides the parent implementation and always returns true.

public boolean getUseCustomStorage ( )
return | boolean | Whether to use custom storage.

init() public method

Initializes the redis Session component.

This method will initialize the $redis property to make sure it refers to a valid redis connection.

public void init ( )
throws | yii\base\InvalidConfigException | if $redis is invalid.

openSession() public method

Session open handler.

public boolean openSession ( $savePath, $sessionName )
$savePath | string | Session save path
$sessionName | string | Session name
return | boolean | Whether session is opened successfully

readSession() public method

Session read handler.

Do not call this method directly.

public string readSession ( $id )
$id | string | Session ID
return | string | The session data

writeSession() public method

Session write handler.

Do not call this method directly.

public boolean writeSession ( $id, $data )
$id | string | Session ID
$data | string | Session data
return | boolean | Whether session write is successful