Redis学习第一节

来源:互联网 发布:mysql引擎是什么 编辑:程序博客网 时间:2024/06/16 12:54

Redis支持数据持久化,将内存的数据存在硬盘中。

Redis支持k-v键值对,还提供list、set等数据

Redis支持数据备份,master-slave模式的数据备份。


持久化和复制:RDB/AOF

部分事务控制


Redis,单进程处理客户请求,对读写等事件的响应。通过对linux内核的epoll函数包装进行大批量的多路复用I/O


flushdb 删除当前库数据

select 1 选择2号库 切换数据库

flushall 删除所有库的数据

dbsize 当前库的key的数量

所有库都是统一的密码管理

keys *  获取所有的key


Redis五大数据类型:支持不同类型的values

1.String(字符串)

    是redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个values

    是二进制安全的,redis的String包含任何数据,比如:jpg图片,序列化对象

    字符串value最多可用512M

2.Hash(哈希,类似,java的Map)

   String类型的field  和  value的映射 ,用于存储对象  <String,Object>

3.List(列表)

   是简单的字符串列表,按插入顺序排序,可以从左 或者 从右插入

4.Set(集合)

   String类型的无序结合,通过HashTable实现的。

5.Zset(sorted set :有序集合)

   不允许重复成员。  每个元素都会管理一个double类型的分数。 通过分数来为集合中的成员进行从小到大排序。但是分数可以重复。


Redis 的 key

exist  k1  如果存在 返回 1否则 返回0

move k1 2 将k1移到2号库

ttl k1 查看还有多少秒过期,-1表示不过期。 -2表示已过去。

expire k1 10 设置 过期时间10s    已过期,则移除内存系统。不存在了。

del key 删除

type key 查看你的key是什么类型

已经有k1

再set   k1   是覆盖前者。


Redis的String

单值单value

append  k1  123  在k1的value后面拼接。

incr k1  自增 必须数字否则报错

decr  k1  自减

incrby k1  2 每次加2

decrby k1 2 每次减2

getrange /setrange  获取指定区间范围的值。   字符串索引,的范围  k1 =0123456    getrange k1 0 3  那么取出来的是 0123  (左右全是闭区间)

setex(set with expire): setex  k1  10  v1  设置时间

setnx (set if not exist)  :   setnx k1  v1  如果k1存在 则不覆盖。

mset/mget :more set 多个、 mset k1 v1 k2 v2 k3 v3

msetnx:如果set的key中,有一个存在 那么rollback 一样 全都失效。


Redis的List

LPUSH list1  1 2 3 4 5   出的顺序不同

Rpush  list1  1 2 3 4 5 

lpop、rpop

lindex:按索引下标获得元素(从上到下)

llen 长度 

lrem  删除n个value值


Redis的Set

单值多value

sadd 增加。如果重复,自动去重

smember  set1获得set1的Value

scard获取集合元素个数

srem ket value 删除集合中元素


Redis的Hash

KV模式不变,V是一个键值对。

hset        例子:hset user id 11

hget    hget user id      结果:11

hkeys :  获得hash 的V的key

hvals:   获得hash 的V的value


Redis的Zset(可排序的set ,sorted set)

在set基础上加了一个score的值
set  :  k1 v1 v2 v3
zset: k1 score1 v1 k2 score2 v2

zadd  :   zadd  zset1  60 v1 70 v2 80 v3 

zrangebyscore  zset1   60 70    :  v3就没有了  

zrangebyscore  zset1   60  (70  : 不包含 

zrangebyscore  zset1   60  (70  limit 2 2 :在限制 ,在2截取2个。