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 就覆写旧值,且无视类型。
设置数据:set key value
设置多组数据:mset key value [key value..]
返回一个或多个key的值,若key不存在返回nil,若key存在但不是字符串返回nil
查看数据:get key
将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的字符串长度
追加数据:append key value
返回key的剩余生存时间, -1 表示永久存在, -2表示不存在
ttl key
设置 key的同时,设置过期时间(单位:秒) key 过期后将不再可用,会被系统自动删除。
set key value ex seconds
set age 18 ex 20
或 setex key seconds value 例: ( setex sex 20 '男' )
移除指定key的生存时间,成功返回1,若key不存在或不存在生存时间时返回0;
persist key
这里追加一个命令:
进入数据库:user db_name;
如果不知道数据库是否存在,记得加if exists
全局key操作
对redis的五个数据类型都适用的命令
rename key newkey 改名
当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 删除左边第一个 rpopkey 删除右边第一个
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 key
zset类型
类似于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