初识Redis
Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server,该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。
Redis特点:
Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。
Redis应用场景:
因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。
将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。
进入Redis
redis-cli --raw
退出
exit
redis五种数据类型及操作
①string 字符串
#设置
set key value 例: ( set name 'lucy' )
# 获取
get key 例: ( get name )
# key是唯一的,不能用同一个key 不然就会覆盖
# 设置 key的同时,设置过期时间
set key value ex seconds 例: ( set age 18 ex 20 )
或
setex key seconds value 例: ( setex sex 20 '男' )
追加
# 给已有的value,再添加新的值
# append key value
append name hehe
设置/获取多个
#设置多个 string
mset key value key value..
mset username 'lucy' password '123'
#获取多个
mget key key key ...
mget username password name
②list 列表
设置
lpush 左添加 (栈)
lpush key value
lpush my_list a b c d
rpush 右添加 (队列)
rpush key value
rpush my_rlist a b c d
查看
lrange key start stop
查看所有
lrange my_list 0 -1
获取列表的元素个数
llen key
llen my_list
查看位于lindex位置上的元素
lindex key index
删除
删除左边第一个lpop
lpop key
lpop my_list
删除右边第一个rpop
rpop key
rpop my_list
删除指定 lrem
lrem lrem key m value
m>0 表示从左往右删除m个value
m<0 表示从右往左删除m个value
m=0 表示删除所有value
hash 哈希
设置 hset
hset key field value
hset user name lucy
获取 hget
hget key field
hget user name
删除 hdel
hdel key field
hdel user name
设置多个 hmset
hmset key field value [field value]
获取多个 hmget
hmget key field field
获取全部 field value hgetall
hgetall key
获取所有field hkeys
hkeys key
获取所有value hvals
hvals key
set 集合 唯一、无序
设置 sadd
sadd key value [value]
获取 smembers
smembers key
删除
指定删除 srem
srem key value
随机删除 spop
spop key
移动一个集合到另一个集合 smove
smove oldkey newkey value
判断集合存在某个值 sismember 1表示存在,0表示不存在
sismember key value
交集 sinter
sinter key key ...
把多个集合的交集合并到另外一个集合 sinterstore
sinterstore newkey key key ...
并集 sunion
sunion key key ...
把多个集合的并集合并到另外一个集合 sunionstore
sunionstore newkey key key ...
差集 sdiff 左边和右边对比
sdiff key key
把多个集合的差集合并到另外一个集合 sdiffstore
sdiffstore newkey key key
获取集合中元素个数 scard
scard key
随机返回一个集合中的元素 srandmember
srandmember key
zset 有序集合
设置 zadd
zadd key score value
获取
正序 zrange
zrange key start stop
倒序 zrevrange
zrevrange key start stop
删除 zrem
zrem key value
索引位置获取
正序 zrank
zrank key value
反序 zreverank
zrevrank key value
查看有序集合元素个数zcard
zcard key
返回集合中score在给定区间的元素 zrangebyscore
zrangebyscore key score score withscores
返回集合中score在给定区间的数量zcount
zcount key min max
查看score值 zscore
zscore key value
删除集合中排名在指定区间的元素 zremrangebyrank
zremrangebyrank key min max
删除集合中score在指定区间的元素 zremrangebyscore
zremrangebyscore key min max
key 操作
查看所有key
keys *
删除key
del key
查看key是否存在 ,存在返回 1, 不存在返回 0 exists
exists key
查看key类型
type key
查看过期时间
# -1 表示永久 -2 表示 不存在
ttl key 例: ( ttl name )
设置过期时间,时间单位是秒
# 给已经存在 key,设置过期时间
expire key seconds 例: ( expire name 20 )
运算 (整数)
set num value #自动识别字符串里面的整数
incr key #value自动+1
decr key #value自动-1
incrby key n #value自动+n
decrby key n #value自动-n