reedis 基本操作
redis的基本知识
切换数据库
redis默认有16个数据库,通过0-15标识,默认使用的是第0个数据库,可以使用select切换数据库
redis 键值对说明
-
redis是key-value的数据结构
-
每一条数据都是一个“键值对”
-
key的类型永远是string字符串
-
value类型有五种:
-
字符串 string
-
哈希 hash
-
列表 list
-
无序集合 set
-
有序集合 zset
-
-
Redis三种特殊数据类型
-
geospatial 地理位置 (定位、附近的人、打车距离……)
-
hyperloglog 基数 (不重复的元素个数) 可以接受误差 大概有0.81%的错误率
-
bitmaps 位存储 长用于统计用户信息 活跃 不活跃 登录 未登录 打卡
-
字符串 string
string介绍
字符串 string是redis中最基本的类型
增加、修改
如果键存在,就是修改;如果键不存在,就是添加
redis 中字符串(string)可以用单引号'',或者双引号""引起来,也可以省略引号,如"china"、'china'、china 都可以
设置键
如: set 'user1' 'aaa'
设置键值及过期时间,以秒为单位
如:添加一个键user2,值是bbb,过期时间是3s
添加多个键值对 mset
mset key1 value1 key2 value2...
在已有值后面追加值 append
获取
获取单个值 get
获取多个值 mget
删除
删除键 del
键命令
查找键 keys
查看所有键 keys *
查看指定键 keys
判断键是否存在 exists ; 存在返回1,不存在返回0
查看键值类型 type user2
对已经存在的键追加过期时间 expire 'user2' 100
查看键有效时间 ttl
-
返回>0,代表有效时间 s
-
返回-1,永远有效
-
返回-2,键不存在
哈希 hash
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
hash是一个string类型的field和value的映射表.一个key可对应多个field,一个field对应一个value。将一个对象存储为hash类型,较于每个字段都存储成string类型更能节省内存
增加、修改
如果设置的字段存在,就是修改;如果字段不存在,就是添加
案例:
增加一个hash类型键值对huser1,字段为name,值为tom
添加多个hash字段值 hmset huser2 name mary sex female
获取
获取指定键所有的字段。
hkeys key
案例:获取键“huser2”的所有字段
获取一个字段对应的值
hget key field
案例:获取键“huser2”字段“name”的值
获取多个字段的值
hmget key field1 field2 ...
案例:获取键“huser2”字段“name”、“sex”的值
获取所有字段的值
hvals key
案例:获取键“huser2”所有字段的值
获取所有字段名包括字段对应的值
hgetall key
案例:获取键“huser2”所有字段名包括字段对应的值
删除
删除hash中指定字段
字段对应的值会一起删除
hdel key field1 field2 ...
案例:删除键’huser2‘的字段 ’sex‘
删除整个hash键及字段与值 ,使用del命令
del key1 key2 ...
案例:删除键"huser1","huser2"
列表list
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
redis中,可以将list用作栈、队列、阻塞队列的数据结构
所有list命令都是以l,r开头
redis列表是链表型的数据结构,所以它的元素是有序的,而且列表内的元素是可以重复的
增加
从左侧插入值
lpush key value1 value2 ...
案例:新建一个键luser1,向左侧添加值aa
从右侧插入值
rpush key value1 value2 ...
案例:在键luser1的右侧添加值bb
在指定的值前或者后插入值
linsert key before/after 值 插入的值
案例:向luser1插入值11,插在cc之前
案例:向luser1插入值22,插在cc之后
获取
返回列表里指定范围内的值
-
索引从左侧开始,第一个值的索引为0;
-
索引可以是负数,表示从尾部开始计数,如:-1表示最后一个值
-
start,stop 为要获取值的索引。
lrange key start stop
案例:获取键luser1的列表所有的值:
修改
设置修改指定索引位置的值
lset key index value
案例:把键luser1的列表中索引为1的即第二个元素的值改为china
删除
lrem key count value
-
count: 将列表中前count次出现的值移除
-
count>0 从头往尾删除
-
count<0 从尾往头删除
-
count=0 删除所有值(重复值)
现有一个luser2
案例:从键luser2 列表右侧开始删除1个h1
案例:从键luser2 列表左侧开始删除2个h1
案例:从键luser2 列表中删除所有的h0
无序集合set
一个键中有一个set,一个set中有多个无序的字符串
集合中不允许有重复值,所以只能添加删除查询,不能修改
添加
集合中添加值
sadd key value1 value2...
案例:向键suser1 的集合添加值aa ,bb,cc
获取集合值
smembers key
案例:获取键suser1 的集合所有值
删除值
srem key value
案例:删除集合中键为suser1 中的值bb
有序集合zset
有序集合中的每一个值都会关联一个分数(score),分数可以为负数,通过分数大小将之排序,通过索引定位值的位置(与列表不同)
只能添加删除,不能修改
添加
zadd key score1 value1 score2 value2...
案例:向键zuser1 的集合中添加值aa ,bb,cc,dd,分数分别为1,5,8,3
获取
获取指定范围内的值
withscores:同时获取对应分数
zrange key start stop [withscores]
案例:获取键zuser1 的集合所有值
通过score获取值
zrangebyscore key min max
案例:获取键zuser1 的score从2~6之间的值
通过值返回score
zscore 键 值
删除
删除指定值
zrem key value1 value2
通过score删除指定范围的值
zremrangebyscore key min max
本文来自博客园,作者:测试玩家勇哥,转载请注明原文链接:https://www.cnblogs.com/Nephalem-262667641/articles/17301979.html

浙公网安备 33010602011771号