Redis 数据库 安装与使用

环境: 虚拟机  linux系统 (CentOs)

Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered  sets(被排序的集合),所有的数据类型都具有push/pop、add/remove、执行服务端的并集、交集、两个sets集中的差别等等操作,这些操作都是具有原子性的,Redis还支持各种不同的排序能力

一、 下载redis最新版本2.2.14      

cd /usr/local/src   //进入 src 文件夹

wget –c http://redis.googlecode.com/files/redis-2.6.11.tar.gz  

二、 编译安装redis  

tar zxvf redis-2.2.14.tar.gz   //解压

cd redis-2.2.14  

make   

make命令执行完成后,会在src目录下生成5个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump,它们的作用如下: redis-server:Redis服务器的daemon启动程序

redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作

redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能

redis-check-aof:更新日志检查 

redis-check-dump:用于本地数据库检查

Src目录下的redis-server和redis-cli两个命名就是redis服务端和客户端的应用程序,这两个命令可以直接调用,建议直接复制到用户bin目录下,以方便调用:
# cp src/redis-* /usr/local/bin/
 
三、配置文件的配置  才可以参考其他
 
四、启动
redis-server /etc/redis.conf  启动,使用redis     
ps -ef | grep redis  查看是否启动
如有以下信息说明启动成功:
root 7949 1 0 11:47 ? 00:00:00 redis-server /etc/redis.conf  
 
测试命令:
[root@localhost redis-2.6.11-rc5]# redis-cli set test "123456"
OK
[root@localhost redis-2.4.0-rc5]# redis-cli get test
"123456"  
 
 五,关闭redis  
# redis-cli shutdown       //关闭所有 关闭某个端口上的redis
# redis-cli -p 6397 shutdown   //关闭6397端口的redis

Reids 中 数据结构

 Zset 有序的序列  

String 存储

$ redis-cli set mykey "my binary safe value" OK $ redis-cli get mykey 通常用SET command 和 GET command来设置和获取字符串值。 值可以是任何种类的字符串(包括二进制数据),例如你可以在一个键下保存一副jpeg图片。值的长度不能超过1GB。

List存储

LPUSH 命令可向list的左边(头部)添加一个新元素,而RPUSH命令可向list的右边(尾部)添加一个新元素。最后LRANGE 命令可从list中取出一定范围的元素

$ redis-cli rpush messages "Hello how are you?"

OK

$ redis-cli rpush messages "Fine thanks. I‘m having fun with Redis"

OK

$ redis-cli rpush messages "I should look into this NOSQL thing ASAP"

OK

$ redis-cli lrange messages 0 2

1. Hello how are you?

2. Fine thanks. I‘m having fun with Redis

3. I should look into this NOSQL thing

 

LSET key index value  设置索引下的值

LREM key count value  从列表中删除元素

LLEN key  获得队列(List)的长度

Hash 存储

操作结构化数据:

redis > HSET tech:dep sa 10

(integer) 1

redis > HGETALL  tech:dep

1) "sa"

2) "10"

edis > hget tech:dep sa 

1) “10” 

 Redis> hdel tech:dep sa  删除主键的yield 的值。

Set 存储

SADD  key  member [member ...]添加一个或者多个元素到集合(set)

$ SADD  user:movid:fid 1001   1 2 3 4  批量增加四个ID

 

SPOP  key 删除并获取一个集合里面的元素   删除最后插入的元素

$SPOP  user:moveid:fid  只剩下 3

 

SREM   key member [member ...]从集合里删除一个或多个member

$SREM  user:moveid:fid 2 从集合中删除  元素 2

 

 

Zset 存储 (根据 Score 进行排序 )

 

ZADD key score member [score member ...]  添加到有序set的一个或多个成员,或更新的分数,如果它已经存在

redis> ZADD myzset 1 "one"(integer) 1

redis> ZADD myzset 2 "two"(integer) 1

redis> ZCARD myzset(integer)  2   

ZREM key member [member ...]从排序的集合中删除一个或多个成员

redis> ZREM myzset "two"(integer) 1

redis> ZRANGE myzset 0 -1 WITHSCORES

1) "one" 2) "1"

 

数据库的选择   (默认的 0 数据库)

 选择的时候为 select 0;select 1; ...

 键的选择

KEYS pattern查找所有匹配给定的模式的键 

redis> MSET one 1 two 2 three 3 four 4

OK

redis> KEYS *o*  包含o的主键

1) "four"

2) "one"

3) "two"

redis> KEYS t??   T开头的主键

1) "two"

redis> KEYS *    所有主键

1) "four"

2) "three"

3) "one"

4) "two"

 

数据库实例

Set global:nextUserId 1000   //用户标的全局标示,用来自增

 

INCR global:nextUserId => 1001 

SET uid:1001:username “昵称12”

SET uid:1001:password  123456                         用户信息

 

INCR global:nextUserId => 1002 

SET uid:1001:username “昵称23”

SET uid:1001:password  654321                         用户信息

 

uid:1001:friends => Set of uids of all the followers users   1001用户的好友   <set>

uid:1001:friending=> Set of uids of all the following users   添加1001用户的好友  <set>

 

单方添加

SADD uid:1001:friends 1002    

SADD uid:1002:friending  1001                   1001主动加1002好友,并同意,但1002未添加1001为好友

SADD uid:1001:friends 1003

SADD uid:1003:friending 1001

双向 执行两次此操作,ID位置互换

查询

SMEMBERS uid:1001:friends 查询所有好友

=>返回所有用户的ID

 

SISMEMBER uid:1001:friends 1004 查询1004 是不是是否在1001的好友列表中

如果存在 返回 ,不存在返回 0

SREM uid:1001:friends 1003 [1003  1004 1005]  

1003  [1003 1004 1005]从 1001的好友中删除;返回执行成功的数目 

                        2013-03-28 16:10:57                            

参考

window和linux下的安装

 Centos下安装Redis并配置开机启动

redis中文网站

redis资料汇总

原文地址:https://www.cnblogs.com/Bachelor/p/2986984.html