Redis 介绍
http://redis.io redis的官网
Redis是一个键值对存储数据库,非关系型数据库,属于一种NoSQL,其数据存储在内存里,读写速度非常快,据说是可以达到10w并发。支持数据持久化。它属于单线程服务,但这不影响它的高并发特性。
类似键值对数据库还有Memcached,但Redis比Memcached支持更多类型的数据。Mecached只支持string类型的数据,但Redis除了支持string外,还支持hash,set,list,zset(有序集合)
Redis安装
不用yum安装redis,因为yum里的版本很低。
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar zxf redis-5.0.3.tar.gz
cd redis-5.0.3
make
make install
启动服务
cp redis.conf /etc/
vi /etc/redis.conf #将daemonize no改为daemonize yes
redis-server /etc/redis.conf
CentOS7下编写服务管理脚本
vi /usr/lib/systemd/system/redis.service
##内容如下
[Unit]
Description=Redis
After=network.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
##到此结束
ln -s /usr/lib/systemd/system/redis.service /etc/systemd/system/multi-user.target.wants/redis.service
systemctl daemon-reload
systemctl start redis
5种类型的数据
登录redis
redis-cli
redis-cli -h ip -p port
redis-cli -a ‘password’
string
set key1 “aminglinux”
get key1
mset key1 1 key2 ‘a’ key3 ‘linux’
mget key1 key2
list
list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字。list用于消息队列。
LPUSH list1 “aminglinux”
LPUSH list1 “1 2 3”
LPUSH list1 “aaa bbb”
LRAGE list1 0 -1 //读取整个list
LPOP list1 //取出最后插入的元素
RPOP list1 //取出最开始插入的元素
set
set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。
SADD set1 a b c
SADD set1 d
SMEMBERS set1 //读取所有元素
SREM set1 c //删除元素
SADD set2 1 a b
SINTER set1 set2 //交集
SUNION set1 set2 //并集
SDIFF set1 set2 //差集
zset (sorted set)
sorted set是有序集合,它比set多了一个权重参数score,使得集合中的元素能够按 score 进行有序排列.
ZADD set3 12 abc
ZADD set3 2 “cde 123”
ZADD set3 24 “123-aaa”
ZADD set3 4 “a123a”
ZRANGE set3 0 -1
ZREVRANGE set3 0 -1 //倒序
hash
其实,hash可以认为是多维度string。
hset hash1 name aming
hget hash1 name
hset hash1 age 30
hget hash1 age
hgetall hash1