上一篇复习了聊天室代码的编辑过程,这次汇总一下聊天室涉及的知识点,存粹是为了复习!
一、TCP核心代码
1.服务器监听Listen
listen, err := net.Listen("tcp", "127.0.0.1:8889")
是等待client连接的状态
2.服务器获取连接Accept
conn, err := listen.Accept()
完成三次握手,服务器与客户端建立连接
3.客户端主动连接服务器Dial
conn, err := net.Dial("tcp", "localhost:8889")
4.向连接中读数据Read
n, err = conn.Read(buf[:len])
5.向连接中写数据Write
n, err := conn.Write(Buf[:len])
二、redis使用
1.初始化连接池
func initPool(address string, maxIdle, maxActive int, idleTimeout time.Duration){
pool = &redis.Pool{
MaxIdle : maxIdle,//最大空闲连接数
MaxActive : maxActive, //表实和数据库的最大连接数,0表示不限制
IdleTimeout : idleTimeout,//最大空闲时间
Dial: func()(redis.Conn, error){
return redis.Dial("tcp", address)
},
}
}
2.从redis写数据
从初始化后的连接池中取一个连接
conn := redis.pool.Get()
再写入哈希
_, err = conn.Do("hset", "user", user.UserId, string(data))
redis读数据
同样是先获取redis连接
再读
res, err := redis.String(conn.Do("hget", "user",id))
if err != nil{
//
if err == redis.ErrNil{//表示在user哈希中没有找到对应id
err = ERROR_USER_NOTEXISTS
}
return
}
核心api就这几个
redis还有好多好多知识点,之后要总结