有时候我们需要向redis中写入含有中文的数据,然后在查看数据,但是会看到一些utf-8编码的字符,而不是我们写入的中文,这时候就要用下面的命令;
redis-cli --raw
redis中常见的数据类型有5个.
命令规则: `命令 key 参数`
1. string 字符串(它自己认为是字符串, 我认为是任何东西. ), redis最基础的数据类型. 常用命令 ```python set key value # 添加一条数据 get key # 查看一条数据 incr key # 让该key对应的数据自增1(原子性, 安全) incrby key count # 让该key对应的value自增 count type key # 查看数据类型(set进去的东西一律全是字符串) ``` 例如 ```python set name zhangsan # 添加数据 name = zhangsan get name # 查看数据 zhangsan set age 10 get age # 10 incr age # 11 get age # 11 incrby age 5 # 16
2. hash 哈希, 相当于字典. 常见操作 ```python hset key k1 v1 # 将k1, v1存储在key上 hget key k1 # 将key上的k1提取出来 hmset key k1 v1 k2 v2 k3 v3.... # 一次性将多个k,v存储在key hmget key k1 k2....# 一次性将key中的k1, k2...提取出来 hgetall key # 一次性将key中所有内容全部提取 hkeys key # 将key中所有的k全部提取 hvals key # 将key中所有的v全部提取 ``` 示例: ```python HMSET stu id 1 name sylar age 18 HMGET stu name age # syalr 18 HGETALL stu # id 1 name sylar age 18 HKEYS stu # id name age HVALS stu # 1 syalr 18
3. list 列表, 底层是一个双向链表. 可以从左边和右边进行插入. 记住每次插入都要记得这货是个==双向链表== 常见操作 ```python LPUSH key 数据1 数据2 数据3.... # 从左边插入数据 RPUSH key 数据1 数据2 数据3.... # 从右边插入数据 LRANGE key start stop # 从start到stop提取数据. LLEN key # 返回key对应列表的长度 LPOP key # 从左边删除一个.并返回被删除元素 RPOP key # 从右边删除一个.并返回被删除元素 ``` 示例: ```python LPUSH banji yiban erban sanban siban LRANGE banji 0 -1 # yiban erban sanban siban RPUSH ban ban1 ban2 ban3 LRANGE ban 0 -1 # ban1 ban2 ban3 LPOP ban # ban1 LLEN key # 2
4. set set是无序的超大集合. 无序, 不重复. 常见操作 ```python SADD key 值 # 向集合内存入数据 SMEMBERS key # 查看集合内所有元素 SCARD key # 查看key中元素的个数 SISMEMBER key val # 查看key中是否包含val SUNION key1 key2 # 并集 SDIFF key1 key2 # 差集合, 在key1中, 但不在key2中的数据 SINTER key1 key2 # 计算交集, 在key1和key2中都出现了的 SPOP key # 随机从key中删除一个数据 SRANDMEMBER key count # 随机从key中查询count个数据 ``` 实例: ```python SADD stars 柯震东 吴亦凡 张默 房祖名 # 4 SADD stars 吴亦凡 # 0. 重复的数据是存储不进去的. SMEMBERS stars # 柯震东 吴亦凡 张默 房祖名 SISMEMBER stars 吴亦凡 # 吴亦凡在 stars里么? 1 在 0 不在 SADD my 周杰伦 吴亦凡 房祖名 SINTER stars my # 计算交集 吴亦凡 房祖名 SPOP my # 随机删除一个 SRANDMEMEBER my 2 # 从集合总随机查看2个
5. zset 有序集合, 有序集合中的内容也是不可以重复的. 并且存储的数据也是redis最基础的string数据. 但是在存储数据的同时还增加了一个score. 表示分值. redis就是通过这个score作为排序的规则的. 常用操作 ```python ZADD key s1 m1 s2 m2 ... # 向key中存入 m1 m2 分数分别为s1 s2 ZRANGE key start stop [withscores] # 查看从start 到stop中的所有数据 [是否要分数] ZREVRANGE key start stop # 倒叙查看start到stop的数据 ZCARD key # 查看zset的数据个数 ZCOUNT key min max # 查看分数在min和max之间的数据量 ZINCRBY key score member # 将key中member的分值score ZSCORE key m # 查看key中m的分值 ``` 示例: ```python ZADD fam 1 sylar 2 alex 3 tory # 添加三个数据 ZRANGE fam 0 -1 WITHSCORES # 正序查看 ZREVRANGE fam 0 -1 WITHSCORES # 倒叙查看 ZINCRBY fam 10 alex # 给alex加10分 ZADD fam 100 alex # 给alex修改分数为100分 ZSCORE fam alex # 查看alex的分数 ZCARD fam # 查看fam的数据个数
redis还有非常非常多的操作.如果有需要可以去菜鸟编程
https://www.runoob.com/redis/redis-tutorial.html
数据保存完一定要save一下, 避免数据没有写入硬盘而产生的数据丢失