热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

redis学习(一)redis数据结构和常用命令

redis是基于内存的nosql数据库具有速度快可持久化等优点其中单线程特点也可以作为分布式锁redis存在5大常用数据类型分别为stringlistsethsethashredi

redis 是基于内存的nosql数据库 具有速度快 可持久化等优点 其中单线程特点也可以作为分布式锁
redis 存在5大常用数据类型 分别为 string list set hset hash
redis 针对key的常用命令
keys * 查看所有的key
exists key 查看key是否存在
type key 查看key的类型
del key 删除key
expire key 10 给key设置10秒过期时间
dbsize key的数量
select 切换数据库

sting 是redis基本数据类型 其数据结构为简单字符串每次扩容1M最大支持512M数据 一个key 对应一个value 常用命令
set key value 添加键值对
*NX:当数据库中key不存在时,可以将key-value添加数据库
*XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥
*EX:key的超时秒数
*PX:key的超时毫秒数,与EX互斥

get key 获取key对应的值
append key value 将指定的value 拼接到这个key的结尾
strlen key 获取key的长度
setnx key value 只有key不在时设置value
incr key 将指定的key加一
decr key 将指定的key减一
incrby/decrby key num 将指定的key 加/减 num
getrange key start end 获得值的范围,类似java中的substring,前包,后包
setrange key start value 用 覆写所储存的字符串值,从<起始位置>开始(索引从0开始)。
setex key 过期时间 value 设置一个一个带有过期时间的key
getset key value 以旧换新

list 是简单的字符串列表 其数据结构快速链表quickList 按照插入顺序你可以插入一个数据到头部或者尾部 常用命令
lpush/rpush key value1 value2 value3.... 从左边/右边插入多个值
lpop/rpo key 从左边/右边吐出一个值。值在键在,值光键亡。
rpoplpush key1 key2 从列表右边吐出一个值,插到列表左边。
lrange 按照索引下标获得元素(从左到右)
lrange mylist 0 -1 0左边第一个,-1右边第一个,(0-1表示获取所有)
lindex 按照索引下标获得元素(从左到右)
llen 获得列表长度
linsert before 的后面插入插入值
lrem 从左边删除n个value(从左到右)
lset将列表key下标为index的值替换成value

set 是一个可以自动排重的列表 常用命令
sadd key value1 value2 ... 将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略
smembers key 取出key的所有值
sismenber key value 判断该value 是否是该key的值
scard key 返回该key的集合个数
srem key value1 value2 移除key 中的元素
spop key 随机从该key中吐出一个值
srandmember key n 随机从该key中吐出n个值
smove value把集合中一个值从一个集合移动到另一个集合
sinter 返回两个集合的交集元素。
sunion 返回两个集合的并集元素。
sdiff 返回两个集合的差集元素(key1中的,不包含key2中的)

hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。类似Java里面的Map 常用命令
hset key field value 给key 中的field 赋值value
hget key field 从key 集合中取出 field 的值
hmset key field1 value1 field2 value .. 批量设置值
hexists key field 查看key 中 field 是否存在
hkeys key 列出 key 的所有field
hvals key 列出 key的所有 value
hincrby 为哈希表 key 中的域 field 的值加上增量 1 -1
hsetnx 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 .

zset与普通集合set非常相似。是一个带有评分没有重复元素的字符串集合
zadd key score1 value1 score2 value2 ... 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
zrang key start stop [WITHSCORES] 返回有序集 key 中,下标在之间的元素 带WITHSCORES,可以让分数一起和值返回到结果集
zrangebyscore key minmax [withscores] [limit offset count] 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
zrevrangebyscore key maxmin [withscores] [limit offset count] 同上,改为从大到小排列。
zincrby 为元素的score加上增量
zrem 删除该集合下,指定值的元素
zcount 统计该集合,分数区间内的元素个数
zrank 返回该值在集合中的排名,从0开始。

 



推荐阅读
author-avatar
xiashi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有