Memcached学习记录

Memcached

Memcached高性能分布式内存缓存服务器,经常被用来建立缓存项目以此分担来自于传统数据库的。


NoSQL是弱一致性与MySQL要求的一致性不同


前言

Memcached主要特点
基于C/S架构,协议简单
基于libevent的事件处理
自主内存存储方式
基于客户端的Memcached分布式


提示:

一、Memcache安装

示例:在Windows下安装大体步骤是:
1、下载解压到本地文件夹
在这里插入图片描述

放到C盘后我修改文件名了
2.查看自己电脑的ip地址
在这里插入图片描述
3.启动memcached服务器

C:\memcached>memcached -l 192.168.151.32 -p 11211 -m 256 -vvv

在这里插入图片描述
4.启动telnet服务
!平时启用telnet服务需要先在搜索下输入telnet让后启动服务,这个telnet不好用,这会要有用个软件。
1)下载xshell选下图中的第二个,然后自动安装。
在这里插入图片描述
2)启动xshell新建一个连接,我已经新建完一个了。
在这里插入图片描述
3)写入数据

Connecting to 192.168.151.32:11211...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

ERROR
set k1 0 0 2
99
CLIENT_ERROR bad data chunk
ERROR
set k1 0 0 2
99
STORED
get k1
VALUE k1 0 2
99
END

在这里插入图片描述

二、用Python操作memcached

安装有2种方法、命令安装和在界面安装

代码如下(示例):

第一种安装方法:

选择Anaconda prompt

打开后输入:pip install python-memcached 命令,下图是运行成功截图。

在这里插入图片描述

界面安装:

在这里插入图片描述
在这里插入图片描述

三、浏览器中打开Python操作的memcached

该处使用的url网络请求的数据。


选择Jupyter Notebook,等待在浏览器中打开界面。

选择Jupyter Notebook

打开后的界面
在这里插入图片描述
新建python3
在这里插入图片描述
先练习服务器操作

import memcache

mc = memcache.Client(['192.168.151.32:11211'],debug = True,cache_cas = True)

mc.set("k1",11)
print(mc.get("k1"))

ret = mc.gets("k2")
print(ret)
input

执行结果:由于长时间没有操作从新启动服务器,而且在xshell中从新设置了k1,但是k2没有设置所以出现下面的情况none

11
None
<bound method Kernel.raw_input of <ipykernel.ipkernel.IPythonKernel object at 0x00000232F80E7FD0>>

连续建立里3个模拟,一个服务器两个客户端

1.#模拟服务器初始化模块,初始化K1

import memcache

mc = memcache.Client(['192.168.151.32:11211'],debug = True,cache_cas = True)

mc.set("k1",0)
ret = mc.get("k1")
print(ret)

执行结果

0

2.#模拟客户端1,入库4个零件

3.#模拟客户端2,入库4个零件


#模拟服务器初始化模块,初始化K1
import memcache

mc = memcache.Client(['192.168.151.105:11211'],debug = True,cache_cas = True)

mc.set("k1",0)
ret = mc.get("k1")
print(ret)

#模拟客户端1,入库4个零件
import memcache

mc = memcache.Client(['192.168.151.105:11211'],debug = True,cache_cas = True)

for x in range(4):
    while True:
        ret = mc.gets("k1")
        ret = ret + 1
        input("press any key")      #在模拟客户端之间人为制造延迟
        result = mc.cas("k1",ret)
        print(result)
        if result:                  #如果CAS操作成功,则退出循环,进行下一个入库操作
            print(mc.get("k1"))
            break

print(mc.get("k1"))

#模拟客户端2,入库4个零件
import memcache

mc = memcache.Client(['192.168.151.105:11211'],debug = True,cache_cas = True)

for x in range(4):
    while True:
        ret = mc.gets("k1")
        ret = ret + 1
        input("press any key")      #在模拟客户端之间人为制造延迟
        result = mc.cas("k1",ret)
        print(result)
        if result:                  #如果CAS操作成功,则退出循环,进行下一个入库操作
            print(mc.get("k1"))
            break

print(mc.get("k1"))

总结

先记到这,后边还没有完全明白!这是今天上课的大概内容就这些,后边那个需要弄明白。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值