redis基础(一)
2017-12-25 23:56
218 查看
redis是一种流行的非关系内存型数据库,拥有非常高的读写性能,下面是本人学习的总结。
值:五种类型
string:字符串类型;一个string最大可以储存512MB的数据,其可以储存任何对象;
hash:散列,用来存储对象,key代表对象,field代表属性
set:集合类型,无序的集合,元素为string类型,不可重复;
list:列表类型,一个链表,其元素类型属于string,按照插入的顺序排序
zset:有序集合类型,元素为string,不可重复,每个元素可以指定一个权重,按权重从小到大排列
查看当前所有的keys
查找键,支持正则
查看这个key是否存在
查看数据库中所有的键值对的数目
查看key的类型
随机返回数据库里的一个key
查看有效时间,指的是还剩余的有效时间,如果过期,有效时间置为-2;如果设置为永久有效,有效时间为-1.
重命名key
清空当前选择的数据库
清库该redis的事例
为键值对设置过期时间
同步到磁盘
查
改
删
删
查
改
查
删除
改
查
删
改
查
改
删
redis的类型
键:redis的所有的键都是string类型;值:五种类型
string:字符串类型;一个string最大可以储存512MB的数据,其可以储存任何对象;
hash:散列,用来存储对象,key代表对象,field代表属性
set:集合类型,无序的集合,元素为string类型,不可重复;
list:列表类型,一个链表,其元素类型属于string,按照插入的顺序排序
zset:有序集合类型,元素为string,不可重复,每个元素可以指定一个权重,按权重从小到大排列
常用命令
服务相关命令
ping : 返回pong,用来测试连接是否成功; echo xxx: 在命令行打印一些内容; quit/exit:退出客户端; info:返回redis相关的信息;
键命令
redis默认有16个数据库,切换数据库select index # 0~15,代表16个数据库
查看当前所有的keys
keys *
查找键,支持正则
keys pattern # 常用的有 *(匹配0个或多个) ?(匹配一个) [a-z] [abcd]
查看这个key是否存在
exists key
查看数据库中所有的键值对的数目
dbsize
查看key的类型
type key
随机返回数据库里的一个key
randomkey
查看有效时间,指的是还剩余的有效时间,如果过期,有效时间置为-2;如果设置为永久有效,有效时间为-1.
ttl key
重命名key
rename key1 key2
清空当前选择的数据库
flushdb
清库该redis的事例
flushall
为键值对设置过期时间
expire key seconds
同步到磁盘
save # 会立即阻塞所有的客户端请求,开始同步rdb文件 gbsave # 异步保存rdb文件
操作string类型
增# 设置键值对,永久保存 set key value # 设置有过期时间的键值对,过期自动删除 setex key 时间 value # 设置多个键值对 mset key value key value ... # 设置多个不存在的键值对,存在则失败 msetnx key value key value # 为不存在的键设置值 setnx key value # 如果键存在,设置失败 # 字符串中字符替换 setrange key offset value
查
# 获取值 get key # 获取子字符串 getrange key start end strlen key # 获取值得长度
改
# 对于value是数值的情况,可以运算;如果不是数字会报错; incr key # 对value加1 incrby key num # 对value加一个整数,可以是负数,但不可以是小数 incrbyfloat key num # 对value减一个浮点数,可以是负数 decr key # 对value减少1 decrby key num # 对value减一个整数,可以是负数,但不可以是小数 append key value # 对原来的key的值进行字符串拼接
删
# 删除一个或多个键值对 del key key 。。。
操作hash类型
增# 设置单个hash对象 hset key field value # 设置多个属性 hmset key field value field value... # 为不存在的散列设置值 hsetnx key field value
删
# 删除属性和值 hdel key field field
查
# 判断属性是否存在 hexists key field # 获取一个属性 hget key field # 获取多个属性 hmget key field field... # 获取所有属性和值 hgetall key # 获取所有的属性 hkeys key # 获取所有的值 hvals key # 获取对象属性的个数 hlen key # 返回值得字符串的长度 hstrlen key field
改
# 对属性增加一个整数num,如果field不存在,则增加一个field;如果value不是数字整数,替换成数字整数 hincrby key field num # 对属性增加一个浮点数num,如果不存在,增加一个field;如果value不是数字整数,报错; hincrbyfloat key field num
操作list类型
增# 创建一个list并在头部插入数据 lpush key value value.. # 在尾部插入数据 rpush key value value # 在一个元素的后面或前面插入新的元素,如果有多个相同的元素,会按从头到尾找到的第一个元素 linsert key before|after 已有的元素 新的元素 # 设置指定的索引值的元素值,可以是负数,-1表示最后一个 lset key index value # lset list1 3 kkk
查
# 从头部弹出元素 lpop key # 从尾部弹出元素 rpop key # 返回指定范围内的元素,基于下标0,可以是负数 lrange key start stop # lrange list1 -3 -1 # 如果指定的下标超出了范围,会返回实际的数据 # 返回list的长度 llen key # 返回对应索引的元素 lindex key index # 从非空列表中弹出最左元素,在timeout时间内阻塞等待 blpop key key ... timeout # 从非空列表中弹出最右元素,在timeout时间内阻塞等待 brpop key key ... timeout # 从key1中最右端弹出元素加入到key2的最左端,返回该元素 rpoplpush key1 key2 # 从key1中最右端弹出元素加入到key2的最左端,并在timeout时间内阻塞等待 brpoplpush key1 key2 timeout
删除
# 删除元素 lrem key count value # 删除count个value值,如果count>0,从左边开始删; # 小于0从右边开始删; # 等于0删除所有的value; # count的绝对值大于列表中value的个数时,删除所有的value
改
# 剪切原来的列表 ltrim key start stop
操作集合set
增# 创建并添加一个或多个元素到集合 sadd key value ...
查
# 返回集合里的所有元素 smembers key # 返回集合元素的个数 scard key # 多集合的交际 sinter key1 key2 # 将集合的交存储在dest中 sinterstore dest key1 key2... # 多集合的并集 sunion key1 key2 # 将集合的并集存储在dest中 sunionstore dest key1 key2... # 多集合的差集,以第一个key作为基准 sdiff key ... # 将存在第一个集合key1,但不在其他集合中的元素存储在dest中 sdiffstore dest key1 key2 ... # 判断元素是否在集合中,如果存在返回1,不存在返回0 sismember key value # 从集合里随机返回一个或多个元素,当count是正数,返回count个不重复的元素,如果不够,返回实际的所有元素;当count为负数,返回count个可重复的元素;为0返回none srandmember key count
删
# 删除元素一个或多个元素 srem key value # 随机移除集合里的一个或多个元素,返回该元素 spop key count # count可以不写,默认移除一个;不能为负数,否则报错;大于元素个数,移除所有元素
改
# 将一个集合里的元素移除并添加到另一个元素里,成功返回1,失败0 smove key1 key2 member
有序集合zset
增# 创建并加入元素,会按照score的值进行排序,如果元素的分数值相同,将会使用字典排序,按照a到z zadd key score value score value ...
查
# 获取集合中的所有的值,超过范围取实际的值 zrange key start stop # 返回在分数范围内的元素 zrangebyscore key min max # 返回元素的个数 zcard key # 返回score在范围内的元素 zcount key min max # 返回成员的score的值 zscore key value # 返回成员在有序集合中的排名,从0开始算起 zrank key member
改
# 修改元素的值的分数 zincrby key 整数 value
删
# 删除指定元素 zrem key member member # 删除分数范围的元素 zremrangebyscore key min max
相关文章推荐
- Redis启动后杂项基础知识讲解(五)
- redis学习笔记三之基础命令—列表
- Redis基础
- Redis基础(可以通过菜鸟教程进行学习)(redis分布式爬虫)
- [.net 面向对象程序设计深入](26)Redis——基础
- (一)Redis 基础 - 安装
- Redis基础之管道
- redis基础知识积累
- (三)Redis入门基础命令
- redis 基础+进阶
- Redis集群(1)-基础知识
- redis基础——安装redis和java使用redis(不涉及命令,图文讲解,20170825时windows的redis版本3.2.100)
- redis基础二
- redis学习--基础2 数据类型 keys
- Redis阻塞诊断基础
- PHP基础知识之————php5-cli 的安装以及phpredis的安装
- Redis基础知识 之——发布/订阅
- Redis从基础命令到实战之散列类型(Hash)
- Redisson操作Redis之基础篇
- Redis windows学习(一)——redis安装和基础使用