redis基本数据类型与操作命令-学习笔记

Redis简介:

	Redis是一个NoSQL型数据库,以简单的Key-Value模式存储数据。NoSQL 愿意Not Only SQL 不仅仅是SQL,并不能取代传统的关系型数据库。主要解决性能问题。
	Redis采用的是单线程+多路IO复用技术。关于多路IO复用 	[https://www.zhihu.com/question/32163005]
	适用场景:
		对数据高并发的读写
		对海量数据的读写
		对数据的高扩展性
	不适用场景:
		需要事务支持
		基于SQL的结构化查询存储,处理复杂的关系,需要条件查询
	常见的NoSQL数据库
		Memcached、Redis、mongoDB等

Redis基础命令

redis 有16个数据库 从0开始,默认使用第0个

  • select 1
    选择数据库
  • key *
    查看当前当前数据库所有的键
  • exists <key>
    查看当前键是否存在
  • type <key>
    查看当前键的类型
  • del <key>
    删除某个键
  • expire <key> <second>
    设置过期时间 (秒)
  • ttl <key>
    查看当前键剩余生存时间(-1 永不过期 -2 已过期 以秒为单位)
  • dbsize
    查看当前数据库的key的数量
  • flushdb
    清空当前库
  • flushall
    清空所有库

String

  • append <key> <val>
    追加返回追加后长度
  • strlen <key>
    返回字符串长度
  • setnx <key> <val>
    只有key不存在时会创建赋值,存在不会有任何操作
  • incr <key>
    将key对应的值+1,值必须为纯数字字符串
  • decr <key>
    将key对应的值-1,值必须为纯数字字符串
  • incrby <key> <步长>
    同 incr,可以指定增加的数
  • dectby <key> <步长>
    同 decr,可以指定减少的数
  • mset <key1> <val1> <key2> <val2>…
    同时设置多个key val
  • mget <key1> <key2> …
    同时获取多个val
  • msetnx <key1> <val1> <key2> <val2>…
    设置多个键值,仅当所有键都不存在时才成功,否则不做任何操作
  • getrange <key> start end
    获取键对应值的对应位置的值,相当于substring start end 是一个闭空间
  • setrange <key> start <val>
    覆盖key中start位置开始,用val覆盖
  • setex <key> <time> <val>
    设置键值时指定过期时间
  • getset <key> <value>
    设置新值,获取旧值

list

索引 0 代表第一个 -1 代表最后一个
  • lpush/rpush <key> <val1> <val2>
    左边/右边插入值
  • lpop/rpop <key>
    从表头/表尾弹出一个值
  • rpoplpush <key> <key2>
    从key1的右边弹出一个值添加到key2左边
  • lrange <key> <start> <end>
    按照索引获取元素 从左到右 查询全部 lrange key 0 -1
  • lindex <key> <index>
    按照索引获取元素
  • llen <key>
    获取列表长度
  • linsert <key> after/before <val> <newVal>
    在val前边/后边插入newVal
  • lrem <key> <n> <val>
    从左边删除n个value
    删除list中所有1 lrem list 0 1

Set

  • sadd <key> <val> <val2>
    添加元素到set
  • smembers <key>
    获取set中所有值
  • sismember <key> <value>
    判断是否是set中的成员
  • scard <key>
    获取set中元素个数
  • spop <key>
    随机弹出一个元素并删除该元素
  • srandmember <key> <count>
    随机弹出count个元素,不会删除元素
  • srem <key> <val> <val2>
    删除set中的 val,val2…
  • sinter <key1> <key2>
    交集
  • sunion <key1> <key2>
    并集
  • sdiff <key1> <key2>
    差集 key1中的元素 减去 key1与key2中相同的元素

Hash

  • hset <key> <field> <val>
    存储一个键值对,该hash的键是key,键值对的键为 field 值为val
  • hget <key> <field>
    获取hash里边键为field的值
  • hmset/hmget
    一次存储/获取多个hash值
  • hexists <key> <field>
    查看key中给定field是否存在
  • hkeys <key>
    列出key中所有的键值对
  • hincrby <key> <field> <步长>
    为hash表中键为field的值增加步长个值
  • hsetnx <key> <field> <value>
    讲hash中键为field的值设置value,只有field不存在才做操作

zSet

  • zadd <key> <score1> <val1> <score2> <val2>…
    添加元素
  • zrange <key> <start> <end>
    返回元素下标在start到end之间的元素
  • zrangebyscore <key> <min> <max>
    根据评分返回min到max分数之间的元素
  • zreverangebyscore <key> <max> <min>
    根据评分从大到小返回分数之间的元素
  • zincrby <key> <步长> <member>
    为元素key中的member成员的score加上步长
  • zrem <key> <value>
    删除该元素下指定元素
  • zcount <key> <min> <max>
    返回元素中评分为min到max之间元素的个数
  • zrank <key> <value>
    返回该成员在元素中的评分排名,从0开始
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值