一.常用命令
redis'所有的数据都是保存在内存中的 所以快
一共五中数据类型String set hash list zset
set (name) (value) 给name的变量设置value
get
del
keys *显示所有数据
incr key1 创建一个key1,如果key1存在那么加1
decr key 减一
二.数据类型命令
String类型
set类型(无顺序,但是不重复)字符串类型:
set str1 abc 设置key为str1 值为abc的
get str1 获取key为str1的value
keys * 查看所有数据
incr key1 将key为key1的值增加一
decr key2 减一 (但是注意redis中get出来的数都是字符串。自增会转为整数加一,字符串不能加或减)
del key2
hash类型:
hset hash1 field1 1 创建hash1数据类型 key为field1 值为1
hget hash1 field1 获得
hset hash1 field2 1
hset hash1 field3 1
一个hash1里面可以放多个文件
hkeys hash1 获得hash1中的key
hvals hash1 获得hash1中的所有value
hgetall hash1 获得hash1中的key和value
hdel hash1 field3 删除hash1中的field3
hincrby hash1 field3 增加1 或者 hincrby hash1 field3 -1 减少一
LIST(有顺序):
lpush list1 1 2 3 4 5 6 向左边添加 6 5 4 3 2 1
rpush list2 a b c d e f 向右边添加 a b c d e f
lrange list1 0 -1 从左开始读list1 从0开始到所有(-1表示所有)
lpop list1 从左边取1个 取了以后就没有了
lpop list1
lindex list 3 取出下标为3的,从0开始那么就是第四位
lset list 3 xxxx 设置下标为3的元素
ltrim list 1 -2 表示删除两端的内容 1表示第一个 -2表示倒数第二个 (所以就删除了第一个和倒数第一个内容)
set:
sadd set1 a b a b c d sadd(将一个或多个成员加入到集合中,但是集合中又不能重复,所以会过滤重复的数据)
利用sadd去除重复(使用sadd遍历加入)
srem set1 a 删除
smembers set1 查看set1 中的所有元素
sadd seta a b c d e
sadd setb c d e f g
sinter seta setb 取交集
sunion seta setb 取并集
srandmember seta 5 从seta中随机取出五个元素
zset:
zadd zset1 1 a 3 b 2 c 5 d (有排序的set 耗费性能较多 1位排序 a位key)
zrange zset1 0 -1 按顺序排列
zrevrange zset1 0 -1 反向排列
zrevrange zset1 0 -1 withscores 带上值一起取出来
其他:
expire key1 100 设置过期时间为100秒
ttl key1 查看还有多久消失(如果看到-1说明这个key1是持久化的-2说明不存在)
persist key1 持久化
exit退出客户端 ctrl+c退出客户端
三、拓展
1)List数据类型
redis中List 为双向链表 形式如图所示,其中头结点k同事拥有第一个元素的引用及最后一个元素的引用。
其中有一些方法
LPUSH从左压入
提问: 如此,那么在内存中的顺序是怎样的?
先放的a当然是f在最左边。同理使用rpush就是将元素从右边加入 lpop就是把左边的弹出
LTRIM可以将list的部分删除
2)hashmap
处理详情页、
3)set
无序 去重 help @set
使用场景可以用来做随机抽奖 举例
当使用srandmember时
srandmember k1 5 取出k1中不重复的5个元素 如果不够那么只返回一定的
srandmember k1 -5 从k1中取出随机的元素 但是可能重复
redis环境搭建 https://blog.csdn.net/afdasfggasdf/article/details/84134302