当前位置: 首页 > wzjs >正文

俱乐部网站php源码上海网站制作公司

俱乐部网站php源码,上海网站制作公司,怎么上传网站程序到空间,网站建设第一步怎么弄redis安装与使用 1. 介绍2. 安装2.1 服务端2.2 客户端 3. 接口介绍4. 使用 1. 介绍 Redis(Remote Dictionary Server)是一个开源的高性能键值对(key-value)数据库。它通常用作数据结构服务器,因为除了基本的键值存储功…

redis安装与使用

  • 1. 介绍
  • 2. 安装
    • 2.1 服务端
    • 2.2 客户端
  • 3. 接口介绍
  • 4. 使用

1. 介绍

Redis(Remote Dictionary Server)是一个开源的高性能键值对(key-value)数据库。它通常用作数据结构服务器,因为除了基本的键值存储功能外,Redis 还支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)以及范围查询、位图、超日志和地理空间索引等

以下是 Redis 的一些主要特性:

  1. 内存中数据库:Redis 将所有数据存储在内存中,这使得读写速度非常快。
  2. 持久化:尽管 Redis 是内存数据库,但它提供了持久化选项,可以将内存中的数据保存到磁盘上,以防系统故障导致数据丢失。
  3. 支持多种数据结构:Redis 不仅支持基本的键值对,还支持列表、集合、有序集合等复杂的数据结构。
  4. 原子操作:Redis 支持原子操作,这意味着多个操作可以作为一个单独的原子步骤执行,这对于并发控制非常重要。
  5. 发布/订阅功能:Redis 支持发布订阅模式,允许多个客户端订阅消息,当消息发布时,所有订阅者都会收到消息。
  6. 高可用性:通过 Redis 哨兵(Sentinel)和 Redis 集群,Redis 可以提供高可用性和自动故障转移。
  7. 复制:Redis 支持主从复制,可以提高数据的可用性和读写性能。
  8. 事务:Redis 提供了事务功能,可以保证一系列操作的原子性执行。
  9. Lua 脚本:Redis 支持使用 Lua 脚本进行复杂的数据处理,可以在服务器端执行复杂的逻辑。
  10. 客户端库:Redis 拥有丰富的客户端库,支持多种编程语言,如 Python、Ruby、Java、C# 等。
  11. 性能监控:Redis 提供了多种监控工具和命令,可以帮助开发者监控和优化性能。
  12. 易于使用:Redis 有一个简单的配置文件和命令行界面,使得设置和使用变得容易。

Redis 广泛用于缓存、会话存储、消息队列、排行榜、实时分析等领域。由于其高性能和灵活性,Redis 成为了现代应用程序中非常流行的数据存储解决方案之一。

总结:Redis是一个内存数据库,存储键值对 – val可以是多种数据类型。

2. 安装

2.1 服务端

sudo apt install redis -y

默认安装只支持本地去连接,当前也可以修改一下配置支持远程连接

支持远程连接

修改 /etc/redis/redis.conf

  • 修改 bind 127.0.0.1 为 bind 0.0.0.0
  • 修改 protected-mode yes 为 protected-mode n

启动 Redis 服务

service redis-server start

停止 Redis 服务

service redis-server stop

重启 Redis 服务

service redis-server restart

开机启动 Redis 服务

sudo systemctl enable redis-server

2.2 客户端

C++ 操作 redis 的库有很多,我们使用 redis-plus-plus,这个库的功能强大,使用简单。但是redis-plus-plus 是基于 hiredis 实现的。hiredis 是一个 C 语言实现的 redis 客户端。因此需要先安装 hiredis。 直接使用包管理器安装即可。

sudo apt install libhiredis-dev

下载 redis-plus-plus 源码

git clone https://github.com/sewenew/redis-plus-plus.git

编译/安装 redis-plus-plus

使用 cmake 构建

cd redis-plus-plus
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr .. #安装到系统库
make
make install # 这一步操作需要管理员权限. 如果是非 root 用户, 使用sudo make install 执行

构建成功后, 会在 /usr/local/include/ 中多出 sw 目录,并且内部包含 redis-plus-plus 的一系列头文件。会在 /usr/local/lib/ 中多出一系列 libredis 库文件。

3. 接口介绍

redis 本身支持很多数据类型的键值对接口特别多,这里简单介绍字符串键值对的操作。

namespace sw
{namespace redis{struct ConnectionOptions{std::string host;//ipint port = 6379;//portstd::string path;std::string user = "default";//用户名std::string password;//密码int db = 0; // 默认 0 号库bool keep_alive = false;//长连接/短连接} //连接池struct ConnectionPoolOptions{std::size_t size = 1; // 最大连接数量} class Redis{	//直接给Redis服务器ip+port构造,各种配置信息采用默认的进行连接// uri e.g 'tcp://127.0.0.1:6379'explicit Redis(const std::string &uri) //或者自己在ConnectionOptions配置信息进行连接explicit Redis(const ConnectionOptions &connection_opts,const ConnectionPoolOptions &pool_opts = {})// 删除当前库中所有数据void flushdb(bool async = false);// 删除指定键值对long long del(const StringView &key);// 判断指定键值对是否存在long long exists(const StringView &key);// 获取一个 string 键值对OptionalString get(const StringView &key);// 存放一个 string 键值对,且设置过期时间-毫秒bool set(const StringView &key,const StringView &val,const std::chrono::milliseconds &ttl =std::chrono::milliseconds(0), // 0 表示不设置超时UpdateType type = UpdateType::ALWAYS);void setex(const StringView &key,long long ttl,const StringView &val);// 向一个列表中尾插/头插 string 键值对,它的val是一个列表long long rpush(const StringView &key, const StringView&val);long long lpush(const StringView &key, const StringView&val);long long rpush(const StringView &key,Input first, Input last);//获取列表数据// std::vector<std::string> elements;// redis.lrange("list", 0, -1,std::back_inserter(elements));void lrange(const StringView &key,long long start, long long stop, Output output);}}
}

4. 使用

这里只进行字符串键值对的增删改查操作以及数据的生命周期设置

#include<iostream>
#include<sw/redis++/redis++.h>
#include<thread>void print(sw::redis::Redis& client)
{auto user1 = client.get("会话1");if(user1) std::cout<<*user1<<std::endl;auto user2 = client.get("会话2");if(user2) std::cout<<*user2<<std::endl;auto user3 = client.get("会话3");if(user3) std::cout<<*user3<<std::endl;auto user4 = client.get("会话4");if(user4) std::cout<<*user4<<std::endl;}void add_string(sw::redis::Redis& client)
{client.set("会话1","ID1");client.set("会话2","ID2");client.set("会话3","ID3");client.set("会话4","ID4");client.del("会话2");//数据已存在则进行修改,不存在则新增client.set("会话3","ID33333");print(client);
}void expired_test(sw::redis::Redis& client)
{//这次的新增,数据其实已经有了,因此本次是修改//不仅仅修改了val,而且还给键值对新增了过期时间client.set("会话1","ID1111",std::chrono::milliseconds(1000));print(client);std::cout << "------------休眠2s-----------\n";std::this_thread::sleep_for(std::chrono::seconds(2));print(client);}void list_test(sw::redis::Redis& client)
{client.rpush("群聊1","用户1");client.rpush("群聊1","用户2");client.rpush("群聊1","用户3");client.rpush("群聊1","用户4");std::vector<std::string> users;client.lrange("群聊1",0,-1,std::back_insert_iterator(users));for(auto& user : users){std::cout<< user << std::endl;}}int main()
{//1. 构造连接选项,实例化Redis对象,连接服务器sw::redis::ConnectionOptions opts;//库IP地址opts.host = "127.0.0.1";//库的端口opts.port = 6379;//库的编号:默认0号opts.db = 0;//是否进行长连接保活opts.keep_alive = true;sw::redis::Redis client(opts);//2. 添加字符串键值对,删除字符串键值对,获取字符串键值对add_string(client);//3. 实践控制数据有效时间的操作expired_test(client);//4. 列表的操作,主要实现数据的右插,左获取std::cout << "--------------------------\n";list_test(client);return 0;
}
http://www.dtcms.com/wzjs/277822.html

相关文章:

  • 做网站却不给客户源代码sem竞价
  • 日本人性剧情片电影东莞seo管理
  • 一家只做性价比的网站semantic
  • 腾讯网站建设百度搜索引擎营销案例
  • 建设一个小游戏网站全网营销公司排名前十
  • 外贸公司介绍seo搜索优化费用
  • 做360手机网站网页设计图片
  • 没有公司怎么做网站网络自动推广软件
  • 在线平面图设计工具绍兴seo网站管理
  • 深圳网站建设吗产品推广营销
  • 深圳做网站佰达科技三十精准营销理论
  • 做网站用什么软件做百度推广业务员
  • php 网站开发框架seo排名工具外包
  • 网站备案 取名资讯通不过网络营销师怎么考
  • 南山的网站建设公司浏览器打开
  • 常州企业网站建站模板营销网站做的好的公司
  • 泰和网站制作磁力最好用的搜索引擎
  • 武汉网站建设哪家专业宁波seo推广优化怎么做
  • 网站建设与维护管理实训报告seo的优点有哪些
  • 银川做网站哪家好厦门人才网官方网站
  • 金融网站设计方向外链互换平台
  • 衡水哪儿做wap网站适合30岁女人的培训班
  • 做网站是什么公司常见的网络营销方式有哪几种
  • 部门子网站建设领导小组百度收录查询代码
  • 学生做的网站需要备案网站流量排行
  • 广州seo实战培训网站seo在线诊断
  • 如何利用国外网站做自媒体视频号怎么付费推广
  • 互联网网站如何做windows优化大师win10
  • 昆明网站推广价格电工培训课程
  • 用别人备案域名做违法网站吸引人的微信软文范例