redis使用

使用场景
1,做缓存,不经常变动的数据加载到缓存中。定时的去更新缓存。
2,热点数据处理,如计数,在线会员列表,最新文章等。
 
redis持久化
rob方式:通过快照完成,当符合一定条件时redis会自动将内存中的所有数据进行快照并存储到硬盘上。
进行快照的条件有两个:时间与改动的键的个数。 redis默认采用rob方式,文件在当前目录的dump.rdb文件
在redis启动时会读取rdb快照文件。
aof方式:每执行一条会更改redis中数据的命令,就将该命令写入硬盘的aof文件

redis入门指南笔记


一、安装
wget http://download.redis.io/redis-stable.tar.gz
tar xzf redis-stable.tar.gz 
cd redis-stable
make

启动
src/redis-server
停止 redis-cli shutdown

客户端:
src/redis-cli

cp redis-benchmark redis-cli redis-server /usr/bin/ #这个倒是很有用,这样就不用再执行时加上./了,而且可以在任何地方执行

在线测试 http://try.redis.io/

二、各种类型

键命名:对象类型:对象ID:对象属性

设置 set myname asong
获取 get myname
判断存在 exists myname
删除 del myname

mset,mget设置获取多个键
mset myname asong age 28

查询所有键:keys *
查询以w开头的键 keys w*
type key 获取类型


是原子的,避免冲突
整数自增 incr i
decr i
incrby i 10
decrby i 10

加小数
incrbyfloat i 1.5

向尾部添加值,若不存在,则新值
append myname hello

获取长度 strlen myname

类型:
字符串类型,整数类型

散列类型:用来存储对象
hset user name asong
hget  user name
设置多个值
hmset user name asong age 28
hgetall user --显示所有
hexists user name 判断字段是否存在
hincry user age
hdel user age
hkeys user
hlen user --获取字段数量

列表类型:存储一个有序的字符串列表,在列表两端添加元素,或者获得列表的某一个片段,一双向链表,顺序即插入的次序。
若是一个对象,可以序列化成字符串存储
应用:网站上的最新文章top 10
直接从列表类型中取出即可,因为每次都将最新的插入到头部

lpush users asong fang bcc
rpush users dd ff

从列表删除元素
lpop users
rpop users

获取片段
lrange users 1 10

删除列表指定的值
lrem users -1 asong
lrem key count value
count>0 从列表左边开始删除前count个值为value的元素。
<0,从右边
=0 删除所有值为value的元素

获取指定位置的值
lindex users 1

向列表指定位置插入元素
linsert users before 7 niuniu


集合类型:
集合:无序的每个元素唯一的合集
sadd users asong fangfang
获取: smembers users
删除:sren users asong
判断集合是否存在 sismember users asong
集合运算
sdiff:多个集合差集 属于A但不属于B的集合
sinter:交集
sunion:并集


有序集合类型:插入数据时指定权重,自动处理排序
zadd users asong 100 fang 200 niu 1000
获得元素的权重
zscore users asong

获取权重在某个范围的元素列表
zrange users 1 10