Is there any difference between session and memcahed or redis? If it is,and what is that?

2017-12-11 15:08:45 +08:00
 shanechiu

I am confused about session,memcached/redis.

I often store the login infor into a memcached server or a redis, and then could we call that is a session?

if not,what does a session point and what's the

difference between memcached/redis and session? I have looked up into google,but I can not understand it still.

So,could you do me a favor? Thanks in advance!

Append:

I am a new fish on HTTP, and if this question makes you unhappy, you'd better to forget it. LOL...

3159 次点击
所在节点    Python
35 条回复
flyingghost
2017-12-11 15:22:39 +08:00
session 是一种意图,一种妄图在无状态的 HTTP 里标记每个 client 状态的意图。
这个意图的实现需要 6 个组成步骤:
1,server 生成标明 client 的标记。(用什么方式标明?例:session 对象及其 sessionID )
2,把这个标记存储在 server 端。(存在哪里?例:磁盘文件)
3,把这个标记发往 client。(通过什么方式发送?例:Set-Cookie 头)
4,client 存储这份标记。(如何存储?例:Cookie 存储)
5,client 下次请求的时候,携带这份标记。(如何确保自动携带?通过什么东西承载?例:Cookie 头)
6,server 端根据标记去 2 里面找到对应的 client。

session 是一种机制。
而 redis/memcache 只是用来存储标记的位置而已,他们只负责第 2 点部分。
shanechiu
2017-12-11 15:30:53 +08:00
@flyingghost Well, I agree with you on session is an intention and it is also a mechanism. But, I wonder know who carries out the first step. A web server,like Nginx, Apache HTTP or others?
dcll222
2017-12-11 15:38:01 +08:00
session 是数据, redis/memcached 是存储数据的手段
leetom
2017-12-11 15:39:48 +08:00
@shanechiu Web 服务器不负责生成,是你的应用生成的。没有 Session, 所有的 HTTP 功能都能正常工作,只是服务器不知道对方是谁了。甚至你可以自己通过 token 来模拟 session 的所有功能。

另外,英语不好为啥不用中文呢 orz
flyingghost
2017-12-11 15:40:07 +08:00
@shanechiu 一般是应用服务器。例如:PHP、Tomcat 等。nginx 一般不管这事。
Cooky
2017-12-11 15:40:38 +08:00
装老外 666
shanechiu
2017-12-11 15:44:44 +08:00
@leetom Well,I also know my English poor, and I am doing my best to improve it. Applying is a basic way to perfect my English, isn't it? But,thank you all the same.
oott123
2017-12-11 15:49:28 +08:00
如果楼主是想练习英文,可以考虑去 reddit 之类的英文社区逛逛。请你在达成“练习自己的英文水平”目的的同时,也考虑下这个社区其它人的感受,毕竟这是一个中文社区。更何况你在期望其他人给你回答,更应该站在别人的角度多多考虑一下。

至于楼主的问题 1L 已经解释得十分清楚了。
shanechiu
2017-12-11 15:51:28 +08:00
@oott123 if you do not like it, just ignore it. Thanks all the same.
oott123
2017-12-11 15:53:37 +08:00
@shanechiu #9 并不是「我」不喜欢。
事实上我对你或者这个帖子本身并没有什么特别的看法,只是在提醒你这样的行为在一个公共社区并不合适,以免你遗漏这一点。这是个公序良俗的问题。
当然你听不听也随意,如果你不喜欢这种意见一样可以忽略我。
shanechiu
2017-12-11 15:55:33 +08:00
@oott123 That's fine.
520671
2017-12-11 16:03:24 +08:00
Alternatively, we could also remind you to stop being an ignorant idiot.

Thanks all the same.
shanechiu
2017-12-11 16:05:58 +08:00
@520671 Well,I wouldn't like to make a argument.
520671
2017-12-11 16:09:09 +08:00
> Well,I wouldn't like to make a argument.
^[0]
Oh sure you did. If you want to take a stance and ask others to be quiet for disagreeing with you, surely your actions speak louder than your words.

[0] https://www.englishpage.com/articles/a-vs-an.htm
shanechiu
2017-12-11 16:13:02 +08:00
@520671 That does not make sense for me. The end. LOL
orzfly
2017-12-11 16:13:15 +08:00


source: https://xkcd.com/1357/
假如看不懂的话: http://xkcd.tw/1357
shanechiu
2017-12-11 16:17:18 +08:00
@orzfly got it.
wxsm
2017-12-11 16:25:23 +08:00
小建议:如果你想更好地学习英文,请直接去英文社区,提问上 StackOverflow 嘛。不比在这里发个英文帖然后底下一堆中文回复的好吗?
fml87
2017-12-11 16:34:15 +08:00
英文标点后面要加空格
kkzxak47
2017-12-11 17:02:21 +08:00
遇到 2 楼是你的福气,好好感谢他

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/413767

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX