1.redis了解
优势:
- 性能高,读取速度10万次每秒
- 写入速度8万次每秒
- 所有操作支持原子性
应用:
- 用作缓存数据库,数据放在内存中
- 替代某些场景下的mysql,如社交类app
- 大型系统中,可以存储session信息,购物车订单
2.linux中怎么安装redis?
- yum安装,最简单(自动解决依赖关系,版本一般较低)
- 源码编译安装(可以自由选择版本,自定制各种功能,指定安装路径)
- rpm包手动安装(比较鸡肋,不考虑)
3.编译安装redis
- wget http://download.redis.io/releases/redis-4.0.10.tar.gz
- tar -zxvf redis-4.0.10.tar.gz
- cd到源码目录,发现有makefile,直接make && make install
- 默认安装到 /usr/local/bin/redis-server
- 启动服务端 redis-server
- 启动客户端 redis-cli
4.指定配置文件启动redis,设置密码,开启安全模式,开启远程连接
- 找到配置文件 redis.conf
- 找到如下配置,打开注释
- requirepass xxx #打开注释启用密码,xxx为自定义密码
- bind 192.168.10.128 #redis的启动地址
- daemonize yes #以守护进程形式,在后台运行
- 指定配置文件启动 redis-server redis.conf
- 通过客户端命令去连接 redis-cli -h 192.168.10.128 -p 6379
192.168.10.128:6379> ping
(error) NOAUTH Authentication required.
192.168.10.128:6379> auth xxx #验证密码
OK
5.redis数据类型和对应指令
- string类型
set 设置key
get 获取key
append 追加string
mset 设置多个键值对(mset age 18 hobby rap)
mget 获取多个键值对(mget age hobby)
del 删除key
incr 递增+1(incr key 用于点赞)
decr 递减-1
- list类型(双端队列)
lpush 从列表左边(上)插入(LPUSH queue a b c 创建一个队列)
rpush 从列表右边(下)插入
lrange 获取一定长度的元素 lrange key start stop
ltrim 截取一定长度列表
lpop 删除最左边(上)一个元素
rpop 删除最右边(下)一个元素
lpushx/rpushx key存在则添加值,不存在不处理
- sets类型(redis的集合,是一种无序的集合,集合中的元素没有先后顺序)
sadd/srem 添加/删除 元素
sismember 判断是否为set的一个元素
smembers 返回集合所有的成员
sdiff 返回一个集合和其他集合的差异(第一个中有的,而后面都没有的)
sinter 返回几个集合的交集(两个都有的)
sunion 返回几个集合的并集(自动去重)
- 有序集合
- 上述set类型的命令开头的s换成z即可
- 哈希数据类型
(哈希结构就是 k1 -> k2:v2 如同字典套字典 {k1:{k2:v2}},
hset 设置散列值(hset stu1 name alex age 18 hobby rap)
hget 获取散列值
hmset 设置多对散列值
hmget 获取多对散列值(hmget stu name age hobby)
hsetnx 如果散列已经存在,则不设置(防止覆盖key)
hkeys 返回key的所有keys
hvals 返回key的所有values
hlen 返回散列包含域(field)的数量
hdel 删除散列指定的域(field)
hexists 判断是否存在
6.redis常见命令
- set key values 设置键值对(set name xlz)
- get key 获取键的值
- keys * 查看所有的key
- type key 查看key类型
- expire key seconds 给key设置过期时间(expire name 10)
- ttl key 查看key剩余时间(-1表示key存在且没有过期时间,-2代表已过期)
- persist 取消key的过期时间
- exist key 判断key是否存在(1存在,0不存在)
- del key 删除键值对
- dbsize 计算key的数量