11月 11

Memcached

下载地址: http://www.memcached.org/downloads

安装memcached

1安装第三方软件库

wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.5.2-2.rf.src.rpm
    
rpm -ivh rpmforge-release-0.5.2-2.rf.src.rpm

2查找memcached

yum search memcached

3安装Memcached

yum -y install memcached

4验证安装

memcached -h

应该会输出一些帮助信息

5将memcache加入启动列表

chkconfig --level 2345 memcached on

6配置Memcache

vi /etc/sysconfig/memcached
文件中内容如下
PORT=”11211″ 端口
USER=”root” 使用的用户名
MAXCONN=”1024″ 同时最大连接数
CACHESIZE=”64″ 使用的内存大小
OPTIONS=”" 附加参数

7查看memcache状态

memcached-tool [Memcache Server IP]:[Memcache Server Port] stats

如:memcached-tool 127.0.0.1:11211 stats

启动服务

memcached -d -u root -m 64 -c 1024

windows下的Client

下载地址:https://code.launchpad.net/~mattn/libmemcached/libmemcached-win32

written by ocean

11月 11

下载了CentOS,按照提示一直安装完成

配置IP

静态IP

1.配置/etc/sysconfig/network-scripts/ifcfg-eth0 文件

DEVICE="eth0"
HWADDR="00:0C:29:FD:FF:2A"
NM_CONTROLLED="yes"
ONBOOT="yes"
IPADDR=192.168.1.31
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BOOTPROTO=static

2.配置/etc/resolv.conf  修改DNS

nameserver 172.28.3.10
nameserver 114.114.114.114

3.重启网卡

# /etc/init.d/network stop
# /etc/init.d/network start

4.添加Route

route add defaule gw 172.28.3.1

5.安装wget

yum install wget

查看IP

ifconfig

written by ocean

11月 11

单例应该算最简单最常用模式了

单例模式一个类只允许创建一个实例.单例模式需要注意线程安全

今天就来试试茴香豆有几种写法

第一种,双锁机制,保证线程安全和懒惰加载,首推写法

public sealed class Singleton
{
    static Singleton instance = null;
    private static readonly object obj = new object();
      
    Singleton()
    {
    }
      
    public static Singleton Instance
    {
        get
        {
            if (instance == null)
            {
                lock (obj)
                {
                    if (instance == null)
                    {
                        instance = new Singleton();
                    }
                }
            }
            return instance;
        }
    }
}

第二种,不用锁,线程安全,但是非惰性加载

public sealed class Singleton
{
    private static readonly Singleton instance = new Singleton();
    public static Singleton Instance
    {
        get
        {
            return instance;
        }
    }
}

第三种,不用锁,线程安全,但是非惰性加载,个人经常用这种,貌似非主流用法

public sealed class Singleton
{ 
    static Singleton()
    {
        Instance = new Singleton();
    } 
    public static Singleton Instance = null;
}

第四种,不用锁,线程安全,懒惰加载

public sealed class Singleton
{ 
    public static Singleton Instance
    {
        get
        {
            return Nested.instance;
        }
    }
  
    class Nested
    {  
        internal static readonly Singleton instance = new Singleton();
    }
}

written by ocean

11月 11

如果想要配置TFS只能一次一人签出,你可以尝试以下的办法:

1). 当你在check out一个文件的时候,在Check Out的dialog中,将Lock Type选择成Check Out-Prevent other users from checking out and checking in. 使用这个方法当你check out的时候别人就不可以同时check out那个文件了。

2). 改变那个team project的设置:在Team Explorer中,右键->Team Project Settings->Source Control->在Check Out Settings tab,不要选中Enable multiple check-out. 这时当你操作在这个team project下的source controlled的文件时,一个文件就只可以被一个人check out

written by ocean

11月 07

JSON操作

<?php  
  
  
/**************************************************************  
   *   
   *  使用特定function对数组中所有元素做处理  
   *  @param  string  &$array     要处理的字符串   
   *  @param  string  $function   要执行的函数   
   *  @return boolean $apply_to_keys_also     是否也应用到key上   
   *  @access public   
   *   
   *************************************************************/
  function arrayRecursive(&$array, $function, $apply_to_keys_also = false)  
  {   
      static $recursive_counter = 0;   
      if (++$recursive_counter > 1000) {   
          die('possible deep recursion attack');   
      }  
   
      foreach ($array as $key => $value) {   
          if (is_array($value)) {   
              arrayRecursive($array[$key], $function, $apply_to_keys_also);   
          } else {   
              $array[$key] = $function($value);   
          }        
   
          if ($apply_to_keys_also && is_string($key)) {   
              $new_key = $function($key);   
              if ($new_key != $key) {   
                  $array[$new_key] = $array[$key];   
                  unset($array[$key]);   
              }   
          }   
      }   
      $recursive_counter--;   
  }  
   
        
   
  /**************************************************************   
   *   
   *  将数组转换为JSON字符串(兼容中文)   
   *  @param  array   $array      要转换的数组   
   *  @return string      转换得到的json字符串   
   *  @access public   
   *   
   *************************************************************/
  function JSON($array) {   
      arrayRecursive($array, 'urlencode', true);   
      $json = json_encode($array);  
      return urldecode($json);   
  }  
   
       
   
   
 $respon =   array('total' => 2, 'errorMsg' => 'errorMsg' , 'success'=>true,
  
'rows' => array(array('成语大全' => 'http://chengyu.wx6.org'),array('词语大全' => 'http://chengyu.wx6.org'),array('古诗大全' => 'http://www.wx6.org'))
  
) ; 
              
  echo  JSON($respon);
   
  ?> 

written by ocean

11月 07

数据库读取

<?php 
$conn = @mysql_connect("localhost", "root", "root") or die("数据库链接错误"); 
mysql_select_db("test", $conn); 
mysql_query("set names 'utf8'");  
?>
<?php 
include 'conn.php';  
?>  
                  
<?php 
$sql="select * from tb_test order by id"; 
$query=mysql_query($sql); 
while ($row=mysql_fetch_array($query)){ 
?> 
                  
<?=$row["UserName"]?>  
                  
<?php }  ?>

数据库读取,生成EasyUI所使用的JSON

<?php
     
include 'conn.php';  
     
$pageindex=$ _GET["pageindex"];
$pagesize= $ _GET["pagesize"];
$sql="select * from tb_test order by id limit " . ($pageindex-1)*$pagesize.",".$pagesize; 
$query=mysql_query($sql);
     
     
     
$json="";
$datas=array();
     
class Data{
public $id;
public $name;
}
     
while($row=mysql_fetch_array($query,MYSQL_ASSOC)){
$data=new Data();
$data->name=$row["UserName"];
$data->id=$row["ID"];
$datas[]=$data;
}
     
     
$sql=mysql_query("select count(*) as total from tb_test");
$info=mysql_fetch_array($sql);
$total=$info["total"];//这个变量得到的是同有多少条符合条件的数据 
     
     
$result=array("total"=>$total,"rows"=>$datas);
     
     
$json=json_encode($result);
     
echo $json;
     
     
?>

written by ocean