redis基础入门
2015-07-09 22:52
537 查看
1.Redis基本认识
官方网站:http://redis.io/在线演示网站 :http://try.redis.io/
github网站 : https://github.com/antirez/redis
1.作为key-value模式的内存数据库
2.作为轻量级的MQ工具,提供消息管理功能,消息出队效率高,入队数据量过大是性能相对减弱
Redis分为 redis-server 和redis-client, 作为数据库和程序连接使用
在redis的官网列出了redis的不同语言支持的客户端,其中针对java的比较活跃的jedis 和 Jredis 等。官方推荐使用 Jedis
2.redis 安装和基本操作
2.1 安装
redis提供的linux 下面的安装的方法,在Linux官方网站下载最新的稳定版本的压缩包(没有Linux环境的可以进如 http://try.redis.io/ 学习命令)1.进入Linux系统
$ tar xzf redis-3.0.2.tar.gz $ cd redis-3.0.2 $ make
2.启动redis服务器端
$ src/redis-server
3.使用客户端
$ src/redis-cli redis> set foo bar OK redis> get foo "bar"
2.2 基本操作
redis的数据类型字符串, list,set,zset(有序集合,暂时我就叫它zset吧),hash
1 字符串
set,get
set var_name value
get var_name
keys * 查看所有的键
* incr 并发时安全的自增*
incr var_name 在变量var_name上自增
自动过期时间问题
expire var_name time_second 设置变量过期时间
ttl var_name 查看变量当前剩余过期时间
对一个设置了过期时间的变量重新使用set命令之后,过期时间会被清除,这是查看ttl为-1,ttl 返回值为-1表示从来没有设置过期时间,-2表示已经过期,不在存在。
* 2 复杂元素-list*
lpush ,rpush 往栈里面压入值(入栈),lpop、rpop 从栈里面取值(出栈),取出值后栈里面的元素减少
lpush list_name values
lpop list_name
lrange list_name start len 取list的值 (len为1遍历所有)
llen 从左边数 集合的长度
3 复杂元素-set
sadd set_name value 添加元素
srem set_name value 删除集合元素
sismember set_name test_value 检测元素 test_value 属不属于集合
smembers set_name 查看集合所有的元素
sunion set_a set_b 合并两个元素,去掉重复
zadd sort_set_name sort_score value 通过sort_score来实现一个排序的集合,sort_score的大小决定顺序。
zrange sort_set_name startIndex endIndex 取值,包换startIndex和endIndex处的值
* 4 复杂元素-hashs *
hash值是一中类似 map<String,String>的类型,可以很方便的用来表示一个Object ,例如表示一个user
hset user name ‘Fun’
hset user age ‘24’
上面的两句等同 hmset user name ‘Fun’ age ‘24’
取值
hgetall user 或者 hget user name
例子:
> hmset user:100 name 'Fun' age '24' OK > hgetall user:100 //注意查出来的结果 1) "name" 2) "Fun" 3) "age" 4) "24" > hget user:100 name //查看单个field "Fun"
hash对于数值的自增策略
HSET user:1000 visits 10
HINCRBY user:1000 visits 1 => 11
HINCRBY user:1000 visits 10 => 21
HDEL user:1000 visits
HINCRBY user:1000 visits 1 => 1
在redis中通常设置一个key的之后key的命名中有个”:”后面跟一个数据,这个数据通常与数据id一致
更多命令在官方文档中查看,针对redis的数据类型的一些操作。
与程序结合
以java程序示例,使用jedis包,建立maven项目。加入依赖
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.2</version> <type>jar</type> <scope>compile</scope> </dependency>
程序示例
package fun.fun.jedis.demo; import java.util.HashMap; import java.util.Map; import redis.clients.jedis.Jedis; /** * test app! * */ public class App { public static void main( String[] args ) { final String HOST="192.168.115.100";//安装redis的主机的ip final int PORT=6379;//redis服务设置的端口,默认的,可以在redis 安装的根目录里面修改redis.conf文件修改端口 Jedis jedis = null; try{ jedis = new Jedis(HOST,PORT); jedis.set("foo", "bar"); Map<String,String> usermap = new HashMap<String,String>(); usermap.put("name","Fun"); usermap.put("age","24"); jedis.hmset("user:1", usermap); String value = jedis.get("foo"); Map<String,String> rs = jedis.hgetAll("user:1"); System.out.println(value); System.out.println(rs); }catch(Exception e){ e.printStackTrace(); jedis.close(); } } }
运行结果
bar {name=Fun, age=24}
主要记录下自己对redis的几个基本数据类型的熟悉和相应的增删改查的命令。然后跑起来一个demo程序
相关文章推荐
- redis安装问题小结
- Redis偶发连接失败案例实战记录
- Redis中实现查找某个值的范围
- Redis和Memcached的区别详解
- 分割超大Redis数据库例子
- Redis总结笔记(一):安装和常用命令
- Redis sort 排序命令详解
- redis中修改配置文件中的端口号 密码方法
- 在Ruby on Rails上使用Redis Store的方法
- Redis和Memcache的区别总结
- 在Node.js应用中使用Redis的方法简介
- Redis服务器的启动过程分析
- web 应用中常用的各种 cache详解
- 利用yum安装Redis的方法详解
- 从MySQL到Redis的简单数据库迁移方法
- 为啥懒 Redis 是更好的 Redis
- 在Redis数据库中实现分布式速率限制的方法
- redis2.8配置文件中文翻译版
- 详解Redis使用认证密码登录
- Redis 在真实世界的 5 个用法