Redis 入门学习-one

本文介绍了Redis这一高性能key - value数据库。先讲解了在Linux或Unix系统下的安装步骤,接着阐述了使用Jedis调用Redis API进行数据基本操作,涵盖set、hset、lists、sets、sorted sets等。还指出Redis比传统关系型和其他key - value数据库有优势,能满足多种业务需求。

Redis 是一个高性能的key-value数据库,与其他key-value数据库有不通的地方是他的数据存储结构:

Strings、hashs、lists、sets、sorted 、sets 等 通过不同数据结构存储可以根据业务来选择调用那种api

1,安装 (系统环境是linux 活unix)

下载redis 源码安装包:

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

解压文件:

tar -xf redis-2.8.8.tar.gz

编译安装Redis:

sudo make PREFIX=/usr/local/redis install

将redis的安装目录安装到:/usr/loca/redis 然后从安装包中找到reids的配置文件,复制到安装的根目录。

sudo cp redis.conf /usr/local/redis

启动 Redis Server

./redis-server   ../redis.config

使用redis-cli进行访问:(更多redis命令请自行查询)

./redis-cli

>set name liuzailun

>get name

"liuzailun"

>

2,调用 Redis API:

Redis javaclient 有很多种,Jedis是比较常用的一种

Redis client 初始化:

Jedis redis = new Jedis("192.168.136.110",6379);

调用api 进行数据的基本操作:

2.1--set:

redis.set("name","liuzailun");//设置key-valuse

redis.set("content",5,hello)//设置key-value的有效期为5秒

redis.mset("class","a","age","25")//一次设置多个key-value

redis.append("content","happy") //给字符串追加内容

String content = redis.get("content");//根据key获取value

List<String> list = redis.mget("class","age");//一次取多个key

2.2--hset

redis.hset("url","baidu","www.baidu.com")//给hash添加key-value

redis.hset("url","jingdong","www.jd.com")

Map<String,String> map = new HashMap<String,String>()

map.put("name","liuzailun");

map.put("sex","man");

map.put("age","100");

redis.mset("userinfo",map);//批量设置值

String name = redis.hget("userinfo",name)//取hash中某个key的值

//取hash中多个key的值

List<String> urllist = redis.hmget("url","baidu","jingdong");

//取Hash中所有key的值

Map<String,String> userinfo = redis.hgetAll("userinfo");

2.3--lists

Reids 的lists 是一个链表结构, 主要功能push,pop获取某个范围内的值push,pop可以从链表的头部或者尾部插入或者删除元素

lists可以当做栈使用

redis.lpush("charlist","abc");//在list首部添加元素

redis.lpush("charlist","def");

redis.rpush("charlist","hij");//在list尾部添加元素

redis.rpush("charist","klm");

List<String> charlist = redis.lrange("charlist","0","2");//获取指定的区间元素

redis.lpop("charlist")//在list首部删除元素

redis.rpop("charlist")//在list尾部删除元素

Long charlistsize = redis.llen("charlist");获得list的大小

2.4 --sets(用来存储一个没有元素重复的集合,对集合的元素可以添加删除,对所有元素进行枚举)

redis.sadd("SetMem","s1");// 添加元素

redis.sadd("SetMem","s2");

redis.sadd("SetMem","s3");

redis.srem("setMem","s3")//从set中移除元素

Set<String>set = redis.sembers("SetMem")//枚举出set元素

2.5--sorted sets (Redis sets的升级版。在sets的基础上增加了一个排序的属性);

redis.zadd("SortSetMem",1,"5th");//插入sort set并指定元素的序号

redis.zadd("SortSetMem",2,"4th");

redis.zadd("SortSetMem",3,"3th");

Set<String> sortset = redis.zrange("SortSetMem",2,4);//根据范围取set

Set<String> revsortset = redis.zrevrange("SortSetMem",1,2);//根据范围反向取set

 

相比较传统的关系型数据库,redis有更好的读写能力,支撑更高的并发数,而相比较其他的key-value数据库Redis能够提供更为丰富的数据类型支持Redis能够高效的实现诸如排序取topN。访问计数器,队列系统,数据重新排序等业务需求并且通过将服务器设置为cache-only, 还能够提供高性能的缓存服务,相较与memcahe来说,在性能差别不大的情况下他能够支持更丰富的数据类型。

大家一起学习探讨应用场景,配置等问题。

----参考书籍大型分布式网站架构设计与实践。-陈康贤著---

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值