网站首页 文章专栏 redis各种数据类型查看方法之命令行操作并解决中文乱码
redis 解决命令行查看中文乱码只需要在连接串上加一个参数 --raw
方法有效:从开发已来到2019.11.23 之间的版本都有效。之后的版本,没法预期。望以后小伙伴们看到,及时留言指正,不误导他人
如果你只知道 set 和 get 来设置和取值的话,今天来这里您就来对了
大家都知道redis 是一个存放 key-value 键值对的NOSQL 数据库
key 只能是字符串类型
value 有目前可为五种类型:
String ------> 字符串
Hash ------> 哈希
List ------> 列表
set ------> 集合
Zset ------> 有序集合
string类型
string是redis最基本的类型,一个key对应一个value。
设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
返回一个或多个key的值,若key不存在返回nil,若key存在但不是字符串返回nil
将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的字符串长度
返回key的剩余生存时间, -1 表示永久存在, -2表示不存在
设置 key的同时,设置过期时间(单位:秒) key 过期后将不再可用,会被系统自动删除。
set age 18 ex 20
或 setex key seconds value 例: ( setex sex 20 '男' )
移除指定key的生存时间,成功返回1,若key不存在或不存在生存时间时返回0;
这里追加一个命令:
如果不知道数据库是否存在,记得加if exists
全局key操作
对redis的五个数据类型都适用的命令
当key和newkey相同或者key不存在时返回一个错误,当newkey已存在时则会覆盖;
keys * # 查看所有的key del key # 删除 返回成功的个数 exists key # 查看key是否存在 返回存在个个数 type key # 查看key类型 expire key seconds #设置过期时间 persist key #移除过期时间
list类型
List类型是一个字符串列表,可以在列表头部或尾部添加/删除数据
在插入数据时,按照插入顺序排序,在列表的头部或者尾部添加元素,
如果该键并不存在,Redis将为该键创建一个。
添加数据:rpush key value [value…] 在尾部添加数据 lpush key value [value…] 在头部添加数据
回列表中某个下标的值。index从0开始,当index超出索引时返回null
lindex key index查看列表所有元素的值
查看数据:lrange key 0 -1
返回列表的长度
llen key指定列表(下标)索引号进行修改
修改数据:lset key index value
删除数据:lpop key 删除左边第一个 rpop key 删除右边第一个
Hash类型
是一个键值(key=>value)对集合。是string 类型的 field 和 value 的映射表
user { name:juhao, age:18 }
user -> key(键) name,age ->field(域) juhao,18 ->value(值)
添加数据:
将field-value设置到hash表中,若key不存在会新建hash表再赋值,已存在则会覆盖;
hset key field value
查看域值:
hget key field
批量添加:
hmset key field value field2 value2查看所有的value:
hvals key查看所有的field:
hkeys key获取多个 field
hmget key field value [field value ...]# 获取全部`field` 和 `value
# 获取全部`field` 和 `value hgetall key # 查看有几个键值对 hlen key # 判断hash表中指定域是否存在,返回1,若key或field不存在则返回0; hexists key field # 删除 hdel key field
Set类型
元素为string类型
无序集合
元素具有唯一性,不重复
#增加元素 将一个或多个member元素加入到集合key中,若member已存在那么会忽略此元素, sadd key member [member...] # 返回集合key中元素的个数 scard key # 获取集合中所有元素 smembers key # 判断集合存在某个值 判断member在key中是否已存在, 返回0或1 sismember key member # 删除 移除一个或多个元素,不存在的member会被忽略,返回被移除元素个数srem key member [member...] # 随机删除 spop keyzset类型
类似于Set,不同的是Sorted中的每个成员都分配了一个分数(Score)用于对其中的成员进行排序(升序)。
zset的成员是唯一的,但分数(score)却可以重复。
# 添加/修改 zadd key score member[ [score member] ..] # 查看 zscore key member # 按索引返回key的成员, withscores表示显示score zrange key start stop[withscores] # 显示全部 zrange my_zset 0 -1 # 返回集合中 score 在给定区间的元素 zrangebyscore my_zset 1 4 # 删除 zrem key member [member...] # 删除集合中索引在给定区间的元素 zremrangebyrank key min max # 删除集合中 score 在给定区间的元素 zremrangebyscore key min max