发表于: 2016-04-17 22:13:47

3 2304


【操作步骤】
1.安装Memcache,参考链接:http://www.ccvita.com/257.html
    1.1 先安装libevent,因为Memcache依赖libevent,下载libevent-2.0.22-stable.tar.gz并解压至/tmp文件夹下,这个是需要编译安装的,直接解压后并不能用,所以只把它解压到一个临时文件夹,编译安装完成后就可以把解压得到的文件夹删掉了。
    1.2 在安装libevent时,我设置了./configure --prefix=/usr/local,libevent自动安装到/usr/local/lib目录下了。
    1.3 安装Memcache,安装完成后会把memcached放到 /usr/local/bin/memcached
    1.4 启动Memcache,命令:/usr/local/bin/memcached -d -m 10 -u root -l localhost -p 8080 -c 256 -P /tmp/memcached.pid
2.完善ITtask_4中的程序
    2.1 在数据库ITtask_4中,我有两张表,一张是register表,里面是用户的注册信息(账号和密码),另一张是student表,里面是学生详细信息(姓名、学号、注册时间、QQ号、专业等),我现在把两张表关联起来,当注册时,在register表和student表中都插入一条记录。
    2.2 我发现我的做法有点愚蠢,一直以来我都是把注册表register和学生信息表student分开的,现在我觉得这两张表可以合并为一张表,直接把密码和账号也保存到student表中会方便很多。
    2.3 把以前的项目里面所有与register表有关的代码都进行了修改,删除了register表,只用一个student表。



【知识总结】
1.Memcache的作用及运行原理:http://www.tuicool.com/articles/Mvqe6rj



【出现的问题(已解决)】
1.解压memcached-1.4.25.tar.gz时,我使用了命令:sudo tar zxvf memcached-1.4.25.tar.gz -C /tmp,解压失败,错误提示为:
    gzip: stdin: not in gzip format
    tar: Child returned status 1
    tar: Error is not recoverable: exiting now
  原因:这个压缩包没有用gzip格式压缩
  解决办法:不使用z指令,使用命令:sudo tar xvf memcached-1.4.25.tar.gz -C /tmp即可。
2.当启动了Memcache时,再启动Jetty会报错,错误提示:
    java.lang.Exception: DEBUG STACK TRACE for PoolBackedDataSource.close().
  解决办法:杀死Memcache进程:kill `cat /tmp/memcached.pid`

    


【出现的问题(未解决)】
1.还没有掌握Memcache的使用方法。
2.我在注册时保存密码是只用了MD5加密,并没有加盐,明天看一下加盐的内容,完善一下MD5算法。(我一直以为任务详情上的MD5加盐是写了错别字,没想到真的有加盐这个东西。。。)




【疑问】
1.如果我想在一张student表里面设置id和student_number(学号)这两个自增字段应该怎样设置?
  我采用的办法是:id设置为自增字段,student_number则是在每次插入数据时,设置其为count(*)+1。
  sql语句是:insert into student(name,profession,student_number) value("caojunqi","java",(select a.c from (select count(*) as c from student) as a) +1);
  这样当我插入第一个Student时,他的student_number为1,插入第二个Student时,他的student_number为2,运行起来没问题,一切正常,就是看上去感觉这个sql语句有点笨重。



返回列表 返回列表
评论

    分享到