mg4155com > mg4155线路检测手机版 > 饱含安装,调用Tencent云API的实例

原标题:饱含安装,调用Tencent云API的实例

浏览次数:164 时间:2019-11-15

三、启动redis:

1.基于布署文件运转redis服务器

sudo redis-server /etc/redis/redis.conf 

 

2.启动redis客户端:

redis-cli

 

3.输入ping命令测量试验:

127.0.0.1:6379> ping
PONG

 

4.关闭redis服务器:

ps aux|grep redis    # 查看redis进程号
kill -9 pid redis进程号    # 关闭redis服务器

 

5.切换数据库:暗中认可有14个,通过0-15来标记,私下认可是第贰个数据库0号数据库。

select n

 

 1 #-*-  coding:utf-8 -*-
 2 
 3 class A(object):
 4     name = "sashuangyibing"
 5     __mingzi = "bingyishuangsa"    # 这个是私有变量,只能在类A之内可以使用,超过类A之外是无法引用到
 6     def fun1(self):
 7         print "This is common method"
 8     def __fun2(self):   # 这个是私有方法,只能在类A之内可以使用,超过类A之外是无法引用到
 9         print "This is private method"
10     def fun4(self):
11         return self.__mingzi    # 该私有变量在当前类之内可以被引用
12 
13 class B(A):
14     def __init__(self):
15         super(B,self).__init__()
16     
17     def fun3(self):
18         print "fun3"
19         
20 aa = A()
21 print aa.name
22 print aa.fun4()
23 print aa._A__mingzi
24 aa._A__fun2()

C# 结构的性状

您曾经用了二个简约的名称叫 Books 的协会。在 C# 中的结构与思想的 C 或 C++ 中的结构不意气风发。C# 中的结构有弹指间特点:

  • 组织可含蓄艺术、字段、索引、属性、运算符方法和事件。
  • 结构可定义构造函数,但不能够定义析构函数。不过,您不能够为结构定义暗中同意的构造函数。暗许的构造函数是活动定义的,且不能够被改成。
  • 与类分化,结构不能世襲其余的组织或类。
  • 布局不得不分厚薄其余协会或类的根基结构。
  • 布局可完毕叁个或八个接口。
  • 组织成员不可能钦命为 abstract、virtual 或 protected。
  • 当你使用 New 操作符创造三个组织对象时,会调用适当的构造函数来创制布局。与类差别,结构得以不应用 New 操作符就可以被实例化。
  • 若是不行使 New 操作符,唯有在具备的字段都被开首化之后,字段才被赋值,对象才被应用。
       //获取时间戳 .net framework
            /*
            DateTime dt = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); 
            int time = (int)(DateTime.Now - dt).TotalSeconds;
            String Timestamp = time.ToString();
            */
            // .net core 获取时间戳
            DateTime dt = new DateTime(1970, 1, 1,0, 0, 0, DateTimeKind.Utc);
            int time = (int)(DateTime.Now.AddHours(-8) - dt).TotalSeconds;
            String Timestamp = time.ToString();
            //随机正整数,用于防止重放攻击
            Random rd = new Random();
            int rd_i = rd.Next();
            String nonce = Convert.ToString(rd_i);
            //SecretId
            String SecretId = "";
            //参数(用于编码)
            String PostStr = string.Format("Action=DescribeLVBChannelList&Nonce={0}&Region=bj&SecretId={1}&Timestamp={2}", nonce, SecretId, Timestamp);
            //地址
            String url = "https://live.api.qcloud.com/v2/index.php";
            //编码
            UTF8Encoding enc = new UTF8Encoding();
            String qm = "POSTlive.api.qcloud.com/v2/index.php"  + "?" + PostStr;
            byte[] dataToHash = enc.GetBytes(qm);
            /*
            var sha1 = SHA1.Create();
            var result = sha1.ComputeHash(dataToHash);
            */  
            HMACSHA1 hmac = new HMACSHA1()
            {
                Key = enc.GetBytes("")
            };
            var result = hmac.ComputeHash(dataToHash);
            string Signature = Convert.ToBase64String(result);
            //完整参数
            var completeUrl = string.Format("Action=DescribeLVBChannelList&Nonce={0}&Region=bj&SecretId={1}&Signature={2}&Timestamp={3}", nonce, SecretId, Signature, Timestamp);

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ProtocolVersion = HttpVersion.Version10;
            byte[] data = Encoding.UTF8.GetBytes(completeUrl);
            request.ContentLength = data.Length;
            Stream newStream = request.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();
            HttpWebResponse response = null;
            int httpStatus = 200;
            string content;
            try
            {
                response = (HttpWebResponse)request.GetResponse();
                httpStatus = (int)response.StatusCode;
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                content = reader.ReadToEnd();
            }
            catch (WebException e)
            {
                response = (HttpWebResponse)e.Response;
                httpStatus = (int)response.StatusCode;
                using (Stream errData = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(errData))
                    {
                        content = reader.ReadToEnd();
                    }
                }
            }

BindData();

二、 配置redis:

布局音讯在/etc/redis/redis.conf下,打开sudo vi /etc/redis/redis.conf。

主导配置选项:

绑定ip:bind 127.0.0.1

端口号:port 6379

是或不是以守护进程运转:daemonize yes  必需改为yes

数据库文件:dbfilename dump.db  

数据库文件存款和储蓄路线:dir /var/lib/redis  可改可不改,改的话提前创造好文件夹

日志文件:logfile /var/log/redis/redis-server.log  必需求改,提前创制好文件夹

数据库,默认有16个:database 16

主从复制:slaveof

布局小结:主要校勘两块:1,守护进度;2.日志文件路线

 

类 vs 结构

类和布局有以下多少个大旨的分裂点:

  • 类是援引类型,结构是值类型。
  • 布局不支持继承。
  • 结构不可能宣称默许的构造函数。

本着上述商议,让大家重写后边的实例:

using System;

struct Books
{
    private string name;
    private string title;
    private string author;
    private string subject;
    private int book_id;
    public void getValues(string n,string t, string a, string s, int id)
    {
        name = n;
        title = t;
        author = a;
        subject = s;
        book_id = id;
    }
    public void display()
    {
        Console.WriteLine("{0}",name);
        Console.WriteLine("Title : {0}", title);
        Console.WriteLine("Author : {0}", author);
        Console.WriteLine("Subject : {0}", subject);
        Console.WriteLine("Book_id :{0}", book_id);
    }

};

public class testStructure
{
    public static void Main(string[] args)
    {

        Books Book1 = new Books(); /* 声明 Book1,类型为 Book */
        Books Book2 = new Books(); /* 声明 Book2,类型为 Book */

        /* book 1 详述 */
        Book1.getValues("book1","C Programming",
        "Nuha Ali", "C Programming Tutorial", 6495407);

        /* book 2 详述 */
        Book2.getValues("book2","Telecom Billing",
        "Zara Ali", "Telecom Billing Tutorial", 6495700);

        /* 打印 Book1 信息 */
        Book1.display();

        /* 打印 Book2 信息 */
        Book2.display();

        Console.ReadKey();

    }
}

 

下面的代码是在books结构中定义了三个措施getvalues和display,在程序运转时调用Books里面包车型大巴display方法

当上边包车型大巴代码被编写翻译和施行时,它会爆发下列结果:

图片 1

 

 

{

六、Django框架中session存款和储蓄到redis中的配置

默许情状下session是积攒在数据库中的,不过当用session保存客户的意况时,客商频繁的走访服务器,会增大数据库的下压力,也会稳中有降客户访问的快慢。为了消除那么些难题将session存款和储蓄到redis中。

首先种配备方式:(不应用Django中session暗许的储存方式,直接将session存款和储蓄的地方安顿到redis中卡塔尔

# 1.在虚拟环境中安装包
pip install django-redis-sessions==0.5.6

# 2.在Django项目的settings文件中增加下面的配置
SESSION_ENGINE = 'redis_sessions.session'
SESSION_REDIS_HOST = 'localhost'
SESSION_REDIS_PORT = 6379
SESSION_REDIS_DB = 2
SESSION_REDIS_PASSWORD = ''
SESSION_REDIS_PREFIX = 'session'

 

 第两种配备方式:(先将Django中的缓存设置为redis,然后将session的存款和储蓄地方设置为Django的缓存中卡塔 尔(英语:State of Qatar)

#1.先在虚拟环境中安装包
pip install django_redis

#2. 设置redis作为django的缓存设置
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        # 把这里缓存你的redis服务器ip和port
        "LOCATION": "redis://172.16.179.142:6379/12",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

# 3.设置redis存储django的session信息
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

 

sashuangyibing
bingyishuangsa
bingyishuangsa
This is private method

概念结构

为了定义二个构造,您非得运用 struct 语句。struct 语句为程序定义了二个满含三个成员的新的数据类型。

譬喻,您能够依据如下的艺术声明 Book 结构

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  

上面包车型客车程序演示了组织的用法:

using System;

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  

public class testStructure
{
   public static void Main(string[] args)
   {

      Books Book1;        /* 声明 Book1,类型为 Book */
      Books Book2;        /* 声明 Book2,类型为 Book */

      /* book 1 详述 */
      Book1.title = "C Programming";
      Book1.author = "Nuha Ali"; 
      Book1.subject = "C Programming Tutorial";
      Book1.book_id = 6495407;

      /* book 2 详述 */
      Book2.title = "Telecom Billing";
      Book2.author = "Zara Ali";
      Book2.subject =  "Telecom Billing Tutorial";
      Book2.book_id = 6495700;

      /* 打印 Book1 信息 */
      Console.WriteLine( "Book 1 title : {0}", Book1.title);
      Console.WriteLine("Book 1 author : {0}", Book1.author);
      Console.WriteLine("Book 1 subject : {0}", Book1.subject);
      Console.WriteLine("Book 1 book_id :{0}", Book1.book_id);

      /* 打印 Book2 信息 */
      Console.WriteLine("Book 2 title : {0}", Book2.title);
      Console.WriteLine("Book 2 author : {0}", Book2.author);
      Console.WriteLine("Book 2 subject : {0}", Book2.subject);
      Console.WriteLine("Book 2 book_id : {0}", Book2.book_id);       

      Console.ReadKey();

   }
}

当上面的代码被编写翻译和实行时,它会发生下列结果:

图片 2

<th>籍貫</th>

五、redis与python举办相互影响:

 1.在设想境况中安装redis包:

pip install redis

 

 2.调用模块:

from redis import StrictRedis

 

 3.创建对象:

sr = StrictRedis(host='localhost', port=6379, db=0)  # 默认就是这样的值,不写也行。

 

 4.用sr那一个目的操作redis,将redis中的命令当做函数让sr调用就ok。

 

C# 结构(Struct)

在 C# 中,结构是值类型数据结构。它使得一个纯粹变量能够积存各个数据类型的连锁数据。struct 关键字用于创立布局。

结构是用来表示八个笔录。倘使你想追踪体育场地中书的动态。您可能想追踪每本书的以下属性:

  • Title
  • Author
  • Subject
  • Book ID

System.Data.DataRowView record = (System.Data.DataRowView)e.Item.DataItem;
string userID= record["userID"].ToString();
if (userID.Equals(id))//當點擊不相同的按鈕時對Pannel控件進行隱藏和顯示,達到在table內編輯行的成效
{
((Panel)e.Item.FindControl("plItem")).Visible = false;
((Panel)e.Item.FindControl("plEdit")).Visible = true;
}
else
{
((Panel)e.Item.FindControl("plItem")).Visible = true;
((Panel)e.Item.FindControl("plEdit")).Visible = false;
}

一、安装redis:

1.下载:

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

 2.解压

tar -zxvf redis-3.2.8.tar.gz

 

3.复制,放到/usr/local目录下

sudo mv ./redis-3.2.8 /usr/local/redis

 

4.进入到redis目录下

cd /usr/local/redis/

 

5.生成

sudo make

 

6.测量检验,时间会相比长

sudo make test

 

7.安装,将redis的通令安装到usr/local/bin/目录中

sudo make install

 

8.安装成功后,步向usr/local/bin/目录中查阅:

cd /usr/local/bin

 

 图片 3

9.将配备文件复制放到/etc/redis目录下:

sudo cp /usr/local/redis/redis.conf /etc/redis/redis.conf

 

 或然刚初阶etc下并未有redis目录,要求自个儿手动创立七个redis文件夹。

上述在第6步的时候只怕会遇上那样的主题材料:

You need tcl 8.5 or newer in order to run the Redis test
make: *** [test] Error 1

 

消逝办法:安装tcl 

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  
sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/  
cd  /usr/local/tcl8.6.1/unix/  
sudo ./configure  
sudo make  
sudo make install 

 

输出:

protected void Page_Load(object sender, EventArgs e)
{

四、redis的数码操作:

1.redis的寄放格式为key-value格式。key是字符串类型,value的体系有5种:string、hash、list、set、zset。

2.redis中关于键的广大的操作:

2.1翻看左右的键:keys *

2.2翻看有些键是还是不是存在,存在再次来到1不设有再次来到0:exists key1

2.3查看键的值对应的数据类型:type key1

2.4剔除键值对:del key1 key2

2.5设置键的逾期时间,若无一点点名暗中认可一直留存:expire key seconds

2.6查看键的卓有成效时间:ttl key1

2.7清空数据库:flushall

3.string类型的基本操作:

3.1保存

  • set key value  保存单个键值对
  • mset key1 value1 key2 value2  保存八个键值对
  • setex key seconds value  设置键值和过期时间
  • append key value追加值

3.2获取

  • get key  获取单个
  • mget key1 key2  获取多少个

3.3删除

  • del key

4 hash类型的基本操作:

4.1保存

hset key field value    #设置单个属性
hmset key field1 value1 field2 value2 ...    #设置多个属性

饱含安装,调用Tencent云API的实例。 

4.2获取

hkeys key    # 获取指定键的所有属性
hget key field    # 获取单个属性的值
hmget key field1 field2 ...    # 获取多个属性的值
hvals key    # 获取所有属性的值

 

4.3删除

del key    # 删除整个hash的键和值
hdel key field1 field2 ...    # 删除属性和属性对应的值

 

4.4关于hash类型的私房精通:

能够将hash类型明白为用来存款和储蓄对象:

图片 4

 

 5。list类型的基本操作:

5.1保存

lpush key value1 value2 ...    #从左侧依次插入数据
rpush key value1 value2 ...    #从右侧依次插入数据
linsert key before或after 现有元素 新元素    #从指定元素的前或后插入新元素

 

 5.2获取

lrange key start stop    

 

 start、stop为成分的下标索引,从左边领头,第多个要素为0,-1标志最终一个因素。获取具备的因素:lrange key 0 -1

5.3去除钦赐成分

lrem key count value

 

 将列表中前count次现身的值为value的成分移除。

count > 0: 自始自终移除

count < 0: 从尾到头移除

count = 0: 移除全体

 6.set类型的基本操作

天性:冬辰汇聚、成分唯生龙活虎性不另行、未有改换操作

6.1日增成分

sadd key member1 member2 ...

 

 6.2得到成分

smembers key    # 返回所有元素

 

6.3刨除钦定成分

srem key member1 member2 ...

 

 

 7.zset类型的数额操作

特色:有序集中、成分唯生龙活虎性不另行、未有改造操作、各类成分都会涉嫌三个double类型的权重,依据权重从小到大排列

7.1增加

zadd key score1 member1 score2 member2 ...

 

7.2获取

zrange key start stop  # 根据索引获取

zrangebyscore key min max  # 获取权重在min和max之间的数据
zscore key member  # 返回成员member的score值

 

7.3删除

zrem key member1 member2 ...    # 删除指定元素
zremrangebyscore key min max    #删除权重在指定范围的元素
aa = A()
print aa.__mingzi




Traceback (most recent call last):
  File "E:4.scriptworktest.py", line 21, in <module>
    print aa.__mingzi
AttributeError: 'A' object has no attribute '__mingzi'

//更新數據庫

 

reportRepeater.DataSource = dt;

aa = A()
print aa._A__mingzi    # A前面只有一个下线线
print aa._A__fun2()



bingyishuangsa
This is private method

<td><%Eval("nationality")%></td><tr>

然则足以经过上面这种艺术去援用私有变量和情势,在类名前边增添二个下划线

1.為什麼使用Repeater控件?

  

<th>用戶名</th>

  

</HeaderTemplate>

试错验证,借使按下边方法织造引用私有变量,会报没有该属性

<td><%#Eval("birthplace")%></td>

aa = A()
print aa.__fun2()




Traceback (most recent call last):
  File "E:4.scriptworktest.py", line 21, in <module>
    print aa.__fun2()
AttributeError: 'A' object has no attribute '__fun2'

</asp:Panel>

1、在Python中要想定义的诀窍也许变量只在类内部接收不被外表调用,可以在艺术和变量前面加 两个 下划线

<td><%#Eval("birthplace")%></td>

  

{

}

<td><%#Eval("username")%></td>

本文由mg4155com发布于mg4155线路检测手机版,转载请注明出处:饱含安装,调用Tencent云API的实例

关键词:

上一篇:没有了

下一篇:没有了