zoukankan      html  css  js  c++  java
  • 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资料汇总

  • 相关阅读:
    windows中administrator 和 administrators两个账户的区别
    如何去掉打印网页时自带的网址以及页码等内容
    Oracle左连接,右连接
    oracle服务器本地能够登录但是局域网内其他机器不能访问的解决方法
    错误Name node is in safe mode的解决方法
    oracle数据库中对varchar类型求max的解决方法
    JBoss中配置数据源出现错误:“Failed to register driver for: com.mysql.jdbc.Driver”的解决方法
    学习junit和hamcrest的使用
    Ubuntu10.10如何给用户添加sudo权限
    ORACLE 9i卸载并重新安装
  • 原文地址:https://www.cnblogs.com/Bachelor/p/2986984.html
Copyright © 2011-2022 走看看