Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
beego
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
beego
Commits
a5029cc4
Commit
a5029cc4
authored
Dec 15, 2013
by
astaxie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #370 from slene/master
fix set maxlifetime, close conn
parents
495033b9
d48b7e01
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
6 deletions
+10
-6
sess_redis.go
session/sess_redis.go
+10
-6
No files found.
session/sess_redis.go
View file @
a5029cc4
...
...
@@ -15,10 +15,11 @@ var MAX_POOL_SIZE = 100
var
redisPool
chan
redis
.
Conn
type
RedisSessionStore
struct
{
c
redis
.
Conn
sid
string
lock
sync
.
RWMutex
values
map
[
interface
{}]
interface
{}
c
redis
.
Conn
sid
string
lock
sync
.
RWMutex
values
map
[
interface
{}]
interface
{}
maxlifetime
int64
}
func
(
rs
*
RedisSessionStore
)
Set
(
key
,
value
interface
{})
error
{
...
...
@@ -65,6 +66,7 @@ func (rs *RedisSessionStore) SessionRelease() {
return
}
rs
.
c
.
Do
(
"SET"
,
rs
.
sid
,
string
(
b
))
rs
.
c
.
Do
(
"EXPIRE"
,
rs
.
sid
,
rs
.
maxlifetime
)
}
}
...
...
@@ -129,12 +131,13 @@ func (rp *RedisProvider) SessionRead(sid string) (SessionStore, error) {
return
nil
,
err
}
}
rs
:=
&
RedisSessionStore
{
c
:
c
,
sid
:
sid
,
values
:
kv
}
rs
:=
&
RedisSessionStore
{
c
:
c
,
sid
:
sid
,
values
:
kv
,
maxlifetime
:
rp
.
maxlifetime
}
return
rs
,
nil
}
func
(
rp
*
RedisProvider
)
SessionExist
(
sid
string
)
bool
{
c
:=
rp
.
poollist
.
Get
()
defer
c
.
Close
()
if
existed
,
err
:=
redis
.
Int
(
c
.
Do
(
"EXISTS"
,
sid
));
err
!=
nil
||
existed
==
0
{
return
false
}
else
{
...
...
@@ -159,12 +162,13 @@ func (rp *RedisProvider) SessionRegenerate(oldsid, sid string) (SessionStore, er
return
nil
,
err
}
}
rs
:=
&
RedisSessionStore
{
c
:
c
,
sid
:
sid
,
values
:
kv
}
rs
:=
&
RedisSessionStore
{
c
:
c
,
sid
:
sid
,
values
:
kv
,
maxlifetime
:
rp
.
maxlifetime
}
return
rs
,
nil
}
func
(
rp
*
RedisProvider
)
SessionDestroy
(
sid
string
)
error
{
c
:=
rp
.
poollist
.
Get
()
defer
c
.
Close
()
c
.
Do
(
"DEL"
,
sid
)
return
nil
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment