ITKeyword - 技术文章推荐分享

首页 > redis:list数据类型与操作

redis:list数据类型与操作

标签: redis, c, vector, string, list,

相关推荐:实时投票系统:数据类型上的差异:memcache和redis - 程序开发中遇到的问题

最近要写一个类投票的系统:由于访问量可能会比较大,最好不直接使用mysql数据库,完全使用缓存的话,存在缓存失效等的风险,因此在mysql上面写个缓存中间过渡:1.memcache按照我的习惯,肯定是使用redis,但是公司目前这个项目线上还没有redis服务,只好

redis数据类型之list:redis list数据类型是一个双向循环链表。redis.conf中的相关配置如下:428 # Similarly to hashes, small lists are also encoded in a special way in order429 # to save a lot of space. The special representation is only used when430 # you are under the following limits:431 list-max-ziplist-entries 512432 list-max-ziplist-value 64对于list的操作详见:http://redis.readthedocs.org/en/2.4/list.htmlredis c++接口的调用:#include "redisclient.h"#include "tests/functions.h"#include <iostream>#include <boost/date_time.hpp>#define OUT(x) std::cout<<#x<<" = "<<x<<std::endl;boost::shared_ptr<redis::client> init_non_cluster_client();void test_list(redis::client & c);int main(int argv, char* argc[]) { boost::shared_ptr<redis::client> shared_c; shared_c = init_non_cluster_client(); redis::client& c = *shared_c; test_list(c); return 0;}void test_list(redis::client & c){ test("test redis list type."); while(c.llen("list")>0) {

OUT(c.lpop("list")); } test("lpush & rpush & lpop & rpop & blpop & brpop"); {

OUT( c.lpush("list", "lpush1") );

OUT( c.lpush("list", "lpush2") );

OUT( c.rpush("list", "rpush1") );

OUT( c.rpush("list", "rpush2") );

OUT( c.llen("list") );

r

相关推荐:Redis不同数据类型的的数据结构实现

我们知道Redis支持五种数据类型,分别是字符串、哈希表(map)、列表(list)、集合(set)和有序集合,和Java的集合框架类似,不同数据类型的数据结构实也是不一样的。>>Redis中的redisObject对象Redis是使用C编写的,内部实现了一个struct结构体redis

edis::client::string_vector out;

OUT( c.lrange("list", 0, 10, out) );

for(size_t i=0; i<out.size(); ++ i) {

OUT(out[i]);

}

OUT( c.lpop("list") );

OUT( c.rpop("list") );

OUT( c.llen("list") );

OUT( c.lpush("list", "lpush2") );

OUT( c.rpush("list", "rpush2") );

OUT( c.llen("list") );

OUT( c.blpop("list1", 1) );

OUT( c.blpop("list", 1) );

OUT( c.brpop("list1", 1) );

OUT( c.brpop("list", 1) );

OUT( c.llen("list") ); } test("llen & lrange & ltrim"); {

OUT( c.llen("list") );

redis::client::string_vector out;

OUT( c.lrange("list", 0, 10, out) );

for(size_t i=0; i<out.size(); ++ i) {

OUT(out[i]);

}

c.ltrim("list", 0, 2);

OUT( c.lrange("list", 0, 10, out) );

for(size_t i=0; i<out.size(); ++ i) {

OUT(out[i]);

}

OUT( c.llen("list") ); } test("lrem"); {

OUT( c.llen("list") );

OUT( c.lrem("list", 1, "lpush1") );

OUT( c.lrem("list", -1, "lpush2") );

OUT( c.llen("list") ); } test("lset & lindex"); {

OUT( c.lindex("list", 0) );

c.lset("list", 0, "set new value of index 0");

OUT( c.lindex("list", 0) ); }}

相关推荐:redis快速入门-数据类型

前言最近因项目需要用到redis,所以借助《Redis入门指南》(李子骅 编著)这本书快速入门了一下,此处记录下一些知识点(主要是命令),方便以后查阅。简介Redis是一个开源的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。

redis数据类型之list:redis list数据类型是一个双向循环链表。redis.conf中的相关配置如下:428 # Similarly to hashes, small lists are also encoded in a special way in order429 # to ...

------分隔线----------------------------