标签归档:redis

c# socket 方式操作redis


一、c# socket 操作redis思路简介

1.1 c# 申明一个socket连接 ,向redis发起连接
1.2 c# 将需要发送的命令按照“redis接收命令协议格式”进行拆解
1.3 c# 将拆解后的命令字符串发送至redis服务器
1.4 c# 接收redis服务器返回的字符串信息,根据协议格式拆分命令信息
1.5 c# 关闭当前对redis连接


二、c# socket 操作redis举例说明

           
	    #region 采用socket的方式操作redis

            Console.WriteLine("开始执行!");
            //1 socket 连接redis
            IPAddress serviceIP = IPAddress.Parse("192.168.8.123");
            IPEndPoint serviceEndPoint = new IPEndPoint(serviceIP, 6379);

            Socket t = new Socket(AddressFamily.InterNetwork,
            SocketType.Stream, ProtocolType.Tcp);

            try
            {
                t.Connect(serviceEndPoint);
                Console.WriteLine("连接成功!");
            }
            catch(Exception e)
            {
                Console.WriteLine(e.ToString());
                Console.ReadLine();
                return;
            }

            //2 socket 发送消息至redis
            try
            {
                t.Send(Encoding.ASCII.GetBytes("*3\r\n$3\r\nset\r\n$1\r\nk\r\n$1\r\nv\r\n"));
            }
            catch (Exception e)
            {
                Console.WriteLine("输出发送消息异常信息!");
                Console.WriteLine(e.ToString());

            }

            //3 socket从redis服务器接收消息
            byte[] rece = new byte[1024];
            t.Receive(rece);
            Console.WriteLine("返回结果信息!");
            Console.WriteLine(Encoding.ASCII.GetString(rece).Trim());

            #endregion

 

相关阅读:
redis 接收命令协议格式详解
c# socket tcp 协议应用
window redis 文件夹文件说明 (二) —[ redis-cli]
window redis 文件夹文件说明 (一 )
Redis 数据类型简介
windows下 Redis配置
c# redis应用实例
redis相关简介
KV数据库简介

redis 接收命令协议格式详解


一、redis命令格式详解

redis从socket端口接收到的信息,
以行为单位进行命令接收和解析 处理;
每行都有一个消息标头 (表示消息的用途);
每行命令都使用 \r\n 结束此行消息的输入。

redis接收和返回的消息常见消息头如下五种格式:
+: 此消息头表示当前消息是一个正确的状态,后面跟上相应的字符信息,常用于redis服务器返回消息
-: 此消息头表示返回一个错误信息,后面跟上相应的错误信息,常用于redis服务器返回消息
*: 表示一个整体的消息集合拥有多少行消息,不包含此消息行,常用于发送命令至redis服务器
&: 表示下一行消息的数据长度,提出消息头和行结束标志,常用于发送命令至redis服务器
:: 表示返回一个数值,常用于redis服务器返回消息
以上是redis的消息头,加上相关命令和数据 和 \r\n 结尾就可以组成一个redis可以接收的消息包。


二、redis命令格式举例使用

2.1 举例发送一个 set keyId keyValue 命令,设置一个键”keyId” 的键值为 keyValue,
我们通过以上的消息头可以将其转换为以下的消息块

  *3 \r\n \\表示消息块 一共有三行
  $3\r\n   \\表示以下消息由三个字符组成
  set \r\n  \\消息一
  $5\r\n    \\表示以下消息由五个字符组成
  keyId\r\n  \\消息二 
  $8\r\n     \\表示以下消息由八个字符组成
  keyValue\r\n \\消息三


返回消息: 如果成功,返回以下消息 +Ok\r\n 如果失败,返回一下消息 -err:错误内容\r\n

2.2 例 执行一个 hmset操作一个 hash键
hmset hashKeyId k1 v1 k2 v2 k3 v3

  //此命令包含8个消息行 每一个消息中的字符分别为  5 9 2 2 2 2 2 2
  转换为redis可接收的消息应该为以下格式:
  *8\r\n
  $5\r\n
  hmset\r\n
  &9\r\n
  hashKeyId\r\n
  &2\r\n
  k1\r\n
  &2\r\n
  v1\r\n
  &2\r\n
  k2\r\n
  &2\r\n
  v2\r\n
  &2\r\n
  k3\r\n
  &2\r\n
  v3\r\n

  

返回消息: 如果成功,返回以下消息 +Ok\r\n 如果失败,返回一下消息 -err:错误内容\r\n

依次类型,我们可以将通过redis-cli发送的命令,都转换为此文本,然后发送至redis运行,得到相应的返回结果。

相关阅读:
window redis 文件夹文件说明 (二) —[ redis-cli]
window redis 文件夹文件说明 (一 )
Redis 数据类型简介
windows下 Redis配置
c# redis应用实例
redis相关简介
KV数据库简介

redis 客户端管理相关 命令简介


一、redis 客户端管理相关 简介


CLIENT (LIST | KILL ip:port | GETNAME | SETNAME connection-name)

1.1 client list //获取当前redis数据库下所连接的客户端数量
1.2 client kill //强制关闭某一个客户端连接
1.3 client getname //获取当前客户端 的连接名称
1.4 client setname //设置当前客户端的连接名称


二、redis 客户端管理相关 举例说明

相关客户端管理语法如下:

 redis 192.168.8.123>client list
 //获取redis数据库下面的客户端连接信息
 redis 192.168.8.123>client kill ip:port
  //根据连接客户端的ip和port关闭 强制关闭客户端
 redis 192.168.8.123>client setname "设置名称"
  //设置当前客户端连接对应的名称
 redis 192.168.8.123>client getname
  //获取当前客户端连接对应的名称

如下图所示:

redis-客户端相关命令用法简介

redis-客户端相关命令用法简介


相关阅读:
window redis 文件夹文件说明 (二) —[ redis-cli]
window redis 文件夹文件说明 (一 )
Redis 数据类型简介
windows下 Redis配置
c# redis应用实例
redis相关简介
KV数据库简介