redis in action 笔记

来源:互联网 发布:不怎么花钱的网络手游 编辑:程序博客网 时间:2024/05/14 16:20
Redis的5种数据结构的Value?
String,List,Set,HashSet,Zset


特别说明:
   String    中存放的是一个元素,可改变或追加其内容
   List Set  中存放的是一组元素,List以双向链表方式存储元素,Set是无序不可重复的元素集合
   Hash      中存放的是一组key-value元素,可看成Map的集合
   Sorted Set 中存放的是一组元素,不同的是每个元素都会关联一个double类型的score




1.简单类型  String
  get,set,del
2.链表类型  List   有序
  lpush和rpush   加入到list的头和尾
  lpop和rpop     从list的头和尾出栈
  lindex         根据指定位置获取item
  lrange         获取某个范围内的items
  eg:
    lrange list-key 0 -1    取出list-key中的所有values
3.Set类型   Set     无序
  sadd           添加元素
  smembers       返回所有元素
  sismember      查看元素是否在set中
  srem           如果存在,则删除该元素


说明:
   以上3种类型存放的都是元素




4.Hash 类型  HashSet  存放 key-value 组
    hset          在Hash表中存放key-value
    hget          在Hash表中根据指定key获取value
    hgetall       返回Hash表中的所有key-value组
    hdel          如果存在,根据key删除value
  eg:
     hset hash_set_demo1 sub-key1 value1
     hset hash_set_demo1 sub-key2 value2


     hget hash_set_demo1 sub-key1


     hgetall hash_set_demo1


     hdel hash_set_demo1 sub-key2


5.Sorted Sets类型    zset 排序的Set
   zset-key       zset
   member1         728
   member2         982


      zadd           添加一个元素到zset中
      zrange         从zset中获取排序之后的多个元素
      zrangebyscore  获得按分数排序后的元素
      zrem           如果存在,则从zset中删除元素
      eg:
      zadd zset-key 728 member1
      zadd zset-key 982 member0


      127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "member1"
2) "728"
3) "member0"
4) "982"
 127.0.0.1:6379> zrange zset-key 0 -1
1) "member1"
2) "member0"


127.0.0.1:6379> zrangebyscore zset-key 0 800 withscores
1) "member1"
2) "728"
127.0.0.1:6379> zrem zset-key member1
(integer) 1
127.0.0.1:6379> zrem zset-key member1
(integer) 0
127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "member0"
2) "982"








Redis中核心:
     1.5种数据类型的核心命令


       String类型
             存放3种类型的value
                   字节(数组)值
                   整数
                   浮点数
             说明:
                   整数有自增和自减操作
                incr/decr  整数自加1(自减1)
                incrby/decrby key byNum   整数自增(自减)指定值byNum
                incrbyfloat key amount    浮点数自增指定值amount






        List类型   栈和队列类型,允许两头进行出栈和入栈


              lpush和rpush   加入到list的头和尾
 lpop和rpop     从list的头和尾出栈
 lindex         根据指定位置获取item
 lrange key start end       获取某个范围内的items
 ltrim  key start end       剔除list中索引不在start ~ end 之间的元素


 


        Set类型    存放无序不可重复的元素
               sadd key item  添加元素
               srem key item  删除元素
               sismember key item  查看item是否在set中
               scard key      返回set中元素数量
               smembers       返回set中所有元素
               srandmember  key [count]  从set中返回一个或count个随机元素
               spop key       从set中删除并返回一个随机元素
               smove  source-key dest-key  item  将item元素从source-key 移到dest-key


            两个set类型的操作
                sdiff  key1 [key2...]  返回在key1中而不再其他key中的元素
                sdiffstore 
                sinter key1 [key2...]  返回所有key都有的元素
                sinterstore
                sunion key1 [key2...]  返回多个key中的并集                 
                sunionstore






        Hash类型   存放若干key-value,看做存放map的集合
                hmget hash key [key...]     从hash中根据多个key获取对应的value
                hmset hash key value [key value ...]  在hash中设置多个key及其对应的value
                hdel  hash key [key...]     从hash中根据key删除
                hlen  hash key              返回hash中的map元素数量




                hexists  hash key     对应的key是否存在hash中
                hkeys   hash          获取hash中所有的key
                hvals   hash          获取hash中所有的value
                hgetall hash          获取hash中所有的key-value键值对
                hincrby hash key       如果key中存储的value是int,则value+1


        


        Sorted Set类型    zset  存放排序的元素
                zadd key-name score member [score member ...] 增加一个元素,并给元素一个对应的score
                zrem key-name member [member ...]  删除一个或多个元素
                zcard key-name  返回zset中元素数量
                zincrby key-name incrment member
                zcount key-name min max 返回score在min与max之间的元素,保护member 与其 对应的 value
                zrank key-name member   返回member元素在zset中的位置
                zscore key-name         返回zset中所有元素数量
                zrange key-name start stop   返回score在min与max之间的元素


Ubuntu下创建redis集群

          1.Ubuntu下创建redis集群
             1.源码安装redis,设置redis.conf中的cluster-enabled yes ,并拷贝3份分别为redis1, redis2, redis3
                # redis.conf
                bind node1 # for node1
cluster-enabled yes
cluster-node-timeout 5000
             
             2.启动3个redis节点:
               ./redis-server ../redis.conf --port 6379
               ./redis-server ../redis.conf --port 6380
               ./redis-server ../redis.conf --port 6381
              说明:
      1.调试信息最重要的一行:
No cluster configuration found, I'm a1eec932d923b55e23a5fe6a488ed7a97e27c826
这表示我们的redis服务器正在运行在cluster mode
             
             3.连接启动的3个节点
                        node1 6379
                        node1 6380
                        node1 6381
                        说明: 
                                它们都处于失联状态,我们现在开始配置将它们彼此连接起来,Redis有一个连接节点的工具称为redis-trib.rb. 
                                它是一个ruby文件,需要 redis gem被安装
                  1.安装ruby
                        sudo apt-get install ruby
                        sudo apt-get install rubygems  #如果可以执行gem命令,则不需要此步骤
                  2.安装redis
                        gem install redis
                  3.执行创建集群命令
                        ./redis-trib.rb create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381
                        
                        每个节点负责数据的1/3,键入 'yes'
             
             4.连接其中的一个节点,查看redis集群状态
                   src/redis-cli -h node2 cluster nodes
                   
                   ./redis-cli -p 6379
                   >cluster info
                   
             5.关于Redis集群节点的管理:
                参考:blog.51yip.com/nosql/1726.html













       2.












0 0
原创粉丝点击