redis
一、redis的认识
Nosql == not only sql
非关系型数据库 redis 和 mongodb
解决:
- High performance 高并发读写
- Huge storage 海量数据的高效率存储和访问
- High scalability & High availability 高可扩展性和高可用性
Nosql数据库的四大分类:
- k-v存储
- 列存储 Hbase
- 文档存储 Mongodb
- 图形数据库
对比图:
Nosql 特性:
- 易扩展
- 灵活的数据模型
- 大数据量高性能,高可用
redis是c语言开发的
redis应用场景:
- 做缓存
- 任务队列
- 网站访问统计
- 应用排行榜
- 数据过期处理
- 等等
redis的安装: 百度
二、redis的运行(配置文件的运行)
安装好redis之后(linux)
修改配置文件来后台运行
一开始可以先用 locate 查看redis-server和redis.conf, 这两个文件在哪里
./bin/redis-server ./redis.conf 用配置文件启动redis服务 sudo ./redis-server /etc/redis.conf
ps -ef | grep redis 查看redis服务是否起来
kill -9 <进程号> 杀死进程来关闭redis-server
也可以用 ./bin/redis-cli shutdown 来关闭redis
三、java连接redis
Jedis java的连接redis的一个jar包
连接redis的例子,创建连接池的例子
防火墙 6379 的端口打开
连接池
四、redis的数据类型和常用操作
Redis的数据结构:
- 字符串 String
- 字符串列表 list
- 哈希 hash
- 字符串集合 set
- 有序字符串 sorted-set
存储String常用命令:
- set 建立
- get 查看
- getset 返回一个字符串,也就是键的旧值。 如果键不存在,则返回nil
- del 删除
- incr 数字增加1
- decr 数字减少1
- incrby 数字增加自定义
- decrby 数字减少自定义
- append 返回一个整数,在追加操作后的字符串的长度。
存储Hash:
- hset key key_name values
- hset key key_name1 values1 建立hash,赋值单个
- hmset key key_name value key_name1 value1 建立hash,赋值多个
- hget key key_name 获得单个值
- hmget key key_name key_name1 获得多个值
- hgetall key 获得全部的key,value
- hlen 获得长度
- hkeys 获得键
- hvals 获得值
存储List:
- lpush
- rpush
- lrange 后更参数index 范围
- lpop 取出后消失
- rpop
- llen
- 等等
存储Set:
与list不同,不允许出现重复的元素
- sadd key 添加
- srem key 删除
- smembers key 查看成员值
- scard key 返回成员个数
- 等等
存储Sorted-Set
- zadd myset 50 p 60 j 70 x 添加有序的set
- zadd 100 p 如果value相同,分数会覆盖
- zscore myset p 查询p的分数
- zcard myset 查询长度
- zrem myset p 删除p
- 等等
Redis key的通用操作
- keys *
- del key
- exists key 返回1代表存在
- get key
- rename key 重命名
Redis特性:
multi 事务块
exec 执行事务
discard 取消事务
Redis 持久化:
- RDB方式 可以指定多少秒写入磁盘一次
- AOF方式 读取log
- 无持久化
- 同时RDB和AOF
redis默认是RDB方式:
优势:
劣势:
配置:
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb 保存文件名
dir ./ 在当前目录保存
AOF方式:
优势:
劣势:
配置:
appendonly no/yes 是否启用
#appendfsync always 每修改一次就同步一次
#appendfsync everysec 每秒同步一次
#appendfsync no 不同步
进入appendonly.aof文件删除最后的命令就可以达到撤销的目的
参考链接:
from:http://www.imooc.com/learn/839