Redis

1.Redis入门-redis简介

Redis定义

Remote Dictionary Server,是用C语言开发的一个开源的高性能键值对(key-value)数据库。

特征

  1. 数据之间没有必然的关联关系;

  2. 内部采用单线程机制进行工作;

  3. 高性能。官方提供测试测试数据,50个并发执行100000个请求,读的熟读是110000次/秒,写的速度是81000次/秒;

  4. 多数据类型支持

  5. 持久化支持。可以进行数据灾难性恢复

Redis应用场景

  1. 为热点数据加速查询(主要场景),如热点商品,热点新闻,热点资讯,推广类等高访问量的信息;

  2. 任务队列,如秒杀,抢购,购票排队等;

  3. 即时信息查询,如排行榜,各类网站的访问统计,公交到站信息,在线人数信息(聊天室,网站)、设备信号等;

  4. 时效性信息控制,如验证码控制,投票控制等

  5. 分布式数据共享,如分布式集群架构中的session分离

  6. 消息队列

  7. 分布式锁

2.Redis入门-redis下载安装与服务启动

1.下载

官方网站:http://download.redis.io./releases/

2.版本

linux

3.在Linux下安装/测试Redis

  1. 安装gcc环境

yum install gcc-c++
  1. 解压redis-5.0.7.tar.gz

tar -zxvf redis-5.0.7.tar.gz
  1. 进入解压开的目录/server/redis-5.0.7,进行编译安装

make MALLOC=libc
  1. 配置redis环境变量

vi /etc/profile

export REDIS_HOME=/servers/redis-5.0.7
export PATH=$PATH:$REDIS_HOME/src/

source /etc/profile
  1. 外网访问redis配置

修改绑定的ip地址,以便于外部机器可以访问redis

vi redis.conf
修改
bind 0.0.0.0
  1. 使用默认配置启动redis

cd src 
./redis-server
  1. 使用指定的配置启动redis

./redis-server  ../redis.conf
  1. 关闭redis

1.杀死进程

查询进程号
ps -ef|grep redis
kill -9 进程号

2.客户端关闭进程

./redis-cli -h 127.0.0.1 -p 6379
shutdown

3.Redis入门-redis操作五种基本类型

1.String类型
  1. 添加/修改数据

set key value
  1. 获取数据

get key
  1. 删除数据

del key
  1. 添加/修改多个数据

mset key1 value1 key2 value2 ....
  1. 获取多个数据

mget key1 key2 ...
  1. 获取数据字符的个数(字符串长度)

strlen key
  1. 追加信息到原始信息后部(如果原始信息存在就追加,否则就新建)

append key value
  1. 设置数值增减指定范围的值

1.数值增加
incr key
incryby key increment
incrybyfloat key increment
2.数值减少
decr key
decrby key decrement
  1. 设置数据具有指定的生命周期

setex key seconds value 以秒为单位定时
psetex key milliseconds value 以毫秒为单位设置生命周期
例如:
setex hello 3 world
2.Hash类型
  1. 添加/修改数据

hset key field value
  1. 获取数据

hget key field
hgetall key
  1. 删除数据

hdel key field1  [field2]
  1. 添加/修改多个数据

hmset key field1 value1 field2 value2 ...
  1. 获取多个数据

hmget key field1 field2 ..
  1. 获取hash表中字段的数量

hlen key
  1. 获取hash表中是否存在指定的字段

hexists key field
  1. 获取所有字段名:

hkeys key
  1. 获取所有字段值:

hvals key
  1. 增加整数值:

hincrby key field increment
  1. 增加浮点值:

hincrbyfloat key field increment

3.List类型

  1. 添加和修改数据

lpush key value1 value2 ...
rpush key value1 value2 ...
  1. 获取数据

lrange key satrt stop  #lrange key 0 -1 查询所有
lindex key index
llen key
  1. 获取并移除数据

lpop key
rpop key

4.Set类型

1.添加数据:

sadd key member1 member2

2.获取全部数据

smembers key

3.删除数据

srem key member1 [member2]

4.获取集合数据总量

scard key

5.判断集合中是否包含指定数据

sismember key member

6.数据类型-set数据交、并、差操作

1.添加key名字为u1的内容
sadd u1 a1 s1 b1
2.添加key名字为u2的内容
sadd u2 s1 w1
3.查找u1和u2的交集
sinter u1 u2
4.查找u1和u2的并集
sunion u1 u2
5.查找u1和u2的差集
sdiss u1 u2
6.把u1和u2的交集存储到u3
sinterstore u3 u1 u2
7.把u2中的w1移动到u1
smove u2 u1 w1

5.sorted_set

1.添加数据

zadd key score1 member1 [score2 member2]...

2.获取全部数据

zrange key start stop [withscores]
zrevrange key start stop [withscores]

3.删除数据

zrem key member [member ...]