设为首页 收藏本站
查看: 854|回复: 0

[经验分享] Redis 数据库 安装与使用

[复制链接]

尚未签到

发表于 2015-7-22 10:55:05 | 显示全部楼层 |阅读模式
  环境: 虚拟机  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   

测试命令:
[iyunv@localhost redis-2.6.11-rc5]# redis-cli set test "123456"
OK
[iyunv@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 有序的序列  
DSC0000.jpg

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  只剩下 1 、2 、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用户的好友   
uid:1001:friending=> Set of uids of all the following users   添加1001用户的好友  

单方添加
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的好友列表中
如果存在 返回 1 ,不存在返回 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资料汇总
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-89398-1-1.html 上篇帖子: python +django+mongo+redis+svn 下篇帖子: 【redis源码】(八) Intset.c
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表