Redis的基本操作
Redis默认是有16个数据库,默认使用的是第0个数据库,可以通过select 切换数据库,Redis的命令大小写不敏感的
切换数据库
切换数据库 格式:select index
查看数据库大小
查看数据库大小 格式:dbsize
查看所有的keys
查看所有的key 格式:keys *
清除数据库
清空当前的数据库 格式:flushdb
清空所有的数据库 格式:flushall
clear实现界面的清屏
如果报错:(error) NOAUTH Authentication required.
说明验证出了问题,重新进行验证即可,方式是输入auth
Redis五种基本类型
Redis键命令的基本语法: COMMAND KEY_NAME
示例如下:
- SET 设置key
- GET 查看key对应值
- EXPIRE 设置key的过期时间
- TTL 查看key剩余时间
- EXISTS 判断当前key是否存在
- KEYS * 查看所有的key
- DEL 删除当前key
- TYPE 查看key存储的value类型
1.字符串
应用场景:
计数器(分散数、统计数)
通常来保存单个字符串或者JSON字符串数据(短信验证码)
set get
设置值 格式:set key value
获取值 格式:get key
key值已存在的情况下,set同一key会覆盖掉原值,get一个不存在的key会返回nil
exists
判断key是否存在 格式 exists key
存在返回1,不存在返回0
append
追加字符串,如果key不存在,相当于是set命令
格式:append key apendvalue
strlen
获取字符串的长度
格式:strlen key
incr decr
对value值进行自增1操作(如果key不存在,会被初始化为0)
格式: incr key
对value值进行自减1操作
格式:decr key
若key不存在,则初始化为0
incrby decrby
设置加减的步长
格式:incrby key num decrby key num
getrange
获取给定范围的字符串值
格式:getrange key start stop
setrange
从指定的位置开始替换字符串的值
格式:setrange key offset value
setex ttl
设置过期时间
格式: setex key seconds values
查看剩余时间
格式:ttl key
setnx
setnx(set if not exists) 如果指定的key不存在则设置,存在的失败
格式: setnx key value
(分布式锁经常使用)
如果key存在,则创建失败。
mset mget
同时设置多个值
格式:mset key1 value1 key2 value2 ...
同时获取多个值
格式:mget key1 key ...
getset
先获取值在设置值
格式:getset key value
如果原值不存在,则返回nil,若存在先获取值,然后更改新值,其实原理相当于++i的操作。
2、列表 list
类似于linkedlist链表结构,可以添加元素到列表的头部或者是尾部,同样头部和尾部都可以进行获取,可以用来作为栈、队列、阻塞队列
应用场景:
对数据量大的集合进行删减
列表数据显示:评论列表、关注列表、留言列表
lpush rpush lrange
从列表的左侧插入值
格式:lpush key value
从列表的右侧插入值
格式:rpush key value
从列表中获取指定范围的值
格式:lrange key start stop
插入到左边示例:
lpop rpop
从列表的左侧移除值
格式:lpop key
从列表右侧移除值
格式:rpop key
lindex
获取指定下标的值
格式:lindex key index
超过索引的位置就会返回nil
llen
获取列表中元素的个数
格式:llen key
lrem
移除列表中的元素
格式:lrem key count value
ltrim
截取列表中的值
格式:ltrim key start stop
rpoplpush
移除A列表中最后一个元素,将他添加到另一个B列表中
格式:rpoplpush key1 key2
lset
根据下标替换列表中的值
格式:lset key index value
list底层是一个链表,在链表插入或者改动值,效率高,中间位置来修改,相对效率低一些
3、集合 set
set中元素不能重复,唯一的
set实现是基于哈希表结构实现,在修改、添加等操作复杂度是O(1)
应用场景:
利用唯一性:可以统计访问网站的所有独立的ip
对集合间进行求交集、并集、差集 方便实现共同关注,共同喜欢,共同好友
sadd
在set集合中添加数据
格式:sadd key value
添加重复值时就会添加失败
smembers
获取set集合中所有值
格式:smembers key
sismember
判断某个值是否在set中,在返回1,不在返回0
格式:sismember key value
scard
获取set中元素个数
格式:scard key
srem
删除set中元素
格式:srem key value
srandmember
从set中随机获取值
格式:srandmember key count
spop
随机删除指定的元素
格式:spop key [count]
应用:求差集(sdiff),并集(sunion),交集(sinter)
4、哈希 hash
hash是一个map集合,是key-value的map集合
应用场景:
hash中存储经常变更的对象,比如用户信息: user :name-value age-value ,set-value
hash适合存储对象 ,String适合存储字符串
hset hget
插入和获取哈希的值 hset key field value /hget key field
hmset hmget
批量的插入和获取
格式:hmset key field1 value1 field2 value2 ....
获取格式: hmget key field1 field2 ...
hgetall
获取hash中所有的值
格式:hgetalll key
hdel
删除指定的filed 的哈希键值对
格式:hdel key field
hexitsts
判断哈数中字段是否存在,存在返回1,不存在返回0
格式:hexists key field
hkeys hvals
获取哈数中所有字段或者值
格式 :hkeys key /hvals key
hsetnx
如果存在,则失败,如果不存在,则添加成功
格式:hsetnx key field value
5、有序集合 zset
应用场景:
对于需要排序的场景下可以使用zset. e比如微博的实时新闻可以以发表时间作为score来存储,获取时就自动按时间来排好序
zadd
向有序集合添加一个或多个成员,或者更新已存在成员的分数
格式:zadd key score member...
zrange
按分数进行排序
格式:zrange key start stop
zrange key start stop withscores (同时显示分数zrange)
zrangebyscore
将zset中的值按照从小到大排序数据
格式 zrangebyscore min max
由负无穷到正无穷进行排序,也就是从小到大进行排序。
zrem
删除zset中指定的元素 格式:zrem key value
zcard
查看zset集合中元素的个数 格式:zcard key
zcount
根据score的值来统计给定区间的元素的个数 格式:zcount key min max
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)