RedisⅠ

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的数量
原文地址:https://www.cnblogs.com/straightup/p/13856138.html